首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果JSONP只是动态脚本,什么时候提出请求?

如果JSONP只是动态脚本,什么时候提出请求?
EN

Stack Overflow用户
提问于 2013-11-22 17:41:29
回答 1查看 263关注 0票数 0

显然,使用jQuery.ajax的JSONP请求并不是真正的异步请求,它只是使用脚本DOM元素方法,向页面添加了一个脚本标记。我从这里发现了:https://groups.google.com/forum/#!topic/jquery-dev/5-tKI-7zQvs,它声明:

跨域JSONP根本不是AJAX。它不使用XMLHttpRequest。它只不过是一个加载JavaScript代码的动态脚本元素。

然后在页面加载后处理该动态脚本元素(对于JSONP,这意味着回调函数使用来自.ajax调用中指定的url的JSON数据参数执行)。

因此,如果我在HTML网页中有以下代码:

代码语言:javascript
复制
<script>
    jQuery(document).ready(function() {
        jQuery.ajax({dataType:'jsonp', data:'FIRST'...});
    });
</script>
<script>
    jQuery(document).ready(function() {
        jQuery.ajax({dataType:'jsonp', data:'SECOND'...});
    });
</script>

事情的顺序是什么?

会不会是:

(1)执行添加到DOM的第一个请求的脚本标记

(2)脚本标记以执行添加到DOM中的第二个请求

(3)第一次请求

(4)提出的第二次请求

或者:

(1)执行添加到DOM的第一个请求的脚本标记

(2)第一次请求

(3)脚本标记以执行添加到DOM中的第二个请求

(4)提出的第二次请求

或者以上两件事我都不是误会?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-22 17:46:10

显然,使用jQuery.ajax的JSONP请求并不是真正异步的。

这是错误的,他们是。

相反,它只是使用Script DOM元素方法,向页面添加了一个脚本标记。

那是真的。

跨域JSONP根本不是AJAX。它不使用XMLHttpRequest。

XMLHttpRequest不是Ajax的先决条件。(而且XML不是Ajax或XMLHttpRequest的先决条件(因为XML当时很酷,开发人员需要说服管理人员将其添加到产品中)。

事情的顺序是什么?

  1. 第一个脚本将运行(创建一个就绪事件处理程序)
  2. 第二个脚本将运行(创建第二个就绪事件处理程序)
  3. 准备好的事件会引发
  4. 第一个动态脚本元素将被添加到页面中
  5. 第二个动态脚本元素将被添加到页面中
  6. 第一个动态脚本元素将执行
  7. 第二个动态脚本元素将执行
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20151146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档