Масштабируется ли JSONP? Сколько запросов JSONP можно отправить до того, как моя страница заполнится тегами <script>? - PullRequest
4 голосов
/ 15 марта 2010

На основании Пожалуйста, объясните 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>?

1 Ответ

2 голосов
/ 15 марта 2010

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

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

...