显然,使用jQuery.ajax的JSONP请求并不是真正的异步请求,它只是使用脚本DOM元素方法,向页面添加了一个脚本标记。我从这里发现了:https://groups.google.com/forum/#!topic/jquery-dev/5-tKI-7zQvs,它声明:
跨域JSONP根本不是AJAX。它不使用XMLHttpRequest。它只不过是一个加载JavaScript代码的动态脚本元素。
然后在页面加载后处理该动态脚本元素(对于JSONP,这意味着回调函数使用来自.ajax调用中指定的url的JSON数据参数执行)。
因此,如果我在HTML网页中有以下代码:
<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)提出的第二次请求
或者以上两件事我都不是误会?
谢谢。
发布于 2013-11-22 17:46:10
显然,使用jQuery.ajax的JSONP请求并不是真正异步的。
这是错误的,他们是。
相反,它只是使用Script DOM元素方法,向页面添加了一个脚本标记。
那是真的。
跨域JSONP根本不是AJAX。它不使用XMLHttpRequest。
XMLHttpRequest不是Ajax的先决条件。(而且XML不是Ajax或XMLHttpRequest的先决条件(因为XML当时很酷,开发人员需要说服管理人员将其添加到产品中)。
事情的顺序是什么?
https://stackoverflow.com/questions/20151146
复制相似问题