Масштабируется ли JSONP? Сколько запросов JSONP я могу отправить, прежде чем моя страница заполнится тегами ‹script›?

На основании Объясните, пожалуйста, JSONP, я понимаю, что JSONP можно использовать для обхода политики одного и того же происхождения.

Но для этого на странице должен использоваться тег <script>.

Я знаю, что страницы могут динамически генерировать новые теги скриптов, например:

<script type="text/javascript" language='javascript'>

  document.write('<script type="text/javascript" ' + 
                 'id="contentloadtag" defer="defer" ' +
                 'src="javascript:void(0)"><\/script>');
  var contentloadtag=document.getElementById("contentloadtag");
  contentloadtag.onreadystatechange=function(){
    if (this.readyState=="complete") { init(); }
  }
</script>

(вышеперечисленное работает в IE, не думайте, что это работает в FF).

... но означает ли это, что каждый вызов JSONP требует, чтобы я вводил в документ еще один тег <script>? Могу ли я удалить готовые теги <script>?


person Cheeso    schedule 15.03.2010    source источник


Ответы (1)


Да, каждый запрос дает новый тег <script>, и да, вы можете удалить теги <script>, когда закончите использовать данные, которые он вам предоставляет.

Вам следует подумать об использовании библиотеки Javascript для JSONP. OX.AJAST - это простая библиотека, которую я написал некоторое время назад для выполнения асинхронного запроса через теги сценария (например, JSONP) в браузерах. YUI также поддерживает JSONP, если вы уже его используете.

person Håvard S    schedule 15.03.2010
comment
Эти лирбары, о которых вы упомянули, автоматически удаляют теги <script>? или мне нужно сделать это вручную? - person Cheeso; 15.03.2010
comment
OX.AJAST делает это, я не знаю, делает ли это YUI. - person Håvard S; 16.03.2010