use*_*330 0 javascript ajax jquery jsonp
显然,使用jQuery.ajax的JSONP请求实际上并不是异步的,而只是使用Script DOM Element方法,向页面添加脚本标记.我从这里发现: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>
Run Code Online (Sandbox Code Playgroud)
事情的顺序是什么?
它会是:
(1)脚本标签做了添加到DOM的FIRST请求
(2)脚本标签做了添加到DOM的SECOND请求
(3)提出第一个请求
(4)第二次请求
要么:
(1)脚本标签做了添加到DOM的FIRST请求
(2)提出第一个请求
(3)脚本标签做了添加到DOM的SECOND请求
(4)第二次请求
或者上述两种情况都不是我的误解?
谢谢.
显然,使用jQuery.ajax的JSONP请求实际上并不是异步的
这是错的,他们是.
相反,它只是使用脚本DOM元素方法,向页面添加脚本标记.
确实如此.
跨域JSONP根本不是AJAX.它不使用XMLHttpRequest.
XMLHttpRequest不是Ajax的先决条件.(并且XML不是Ajax或XMLHttpRequest的先决条件(因为XML当时很酷,开发人员需要说服管理人员将其添加到产品中)
事情的顺序是什么?