定义和用法
async 属性规定一旦脚本可用,则会异步执行。
注释:async 属性仅适用于外部脚本(只有在使用 src 属性时)。
注释:有多种执行外部脚本的方法:
如果 async="async":脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)
如果不使用 async 且 defer="defer":脚本将在页面完成解析时执行
如果既不使用 async 也不使用 defer:在浏览器继续解析页面之前,立即读取并执行脚本
async 属性规定一旦脚本可用,则会异步执行。
注释:async 属性仅适用于外部脚本(只有在使用 src 属性时)。
注释:有多种执行外部脚本的方法:
如果 async="async":脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)
如果不使用 async 且 defer="defer":脚本将在页面完成解析时执行
如果既不使用 async 也不使用 defer:在浏览器继续解析页面之前,立即读取并执行脚本
2017-04-10
【************看过来************】
建议大家去搜博客看看jsonp的原生实现,再看看jquery的ajax文档,了解一下各种参数如success函数中的data实际上就是从服务器传回来的,但是因为jquery没有让你看到他的回调函数,你会觉得这个data凭空飞出。
再就是了解,回调的概念,异步的概念,同源策略的概念,这才能把ajax给弄透。
如果说的有什么错的,后来的知道的同学请指正。
建议大家去搜博客看看jsonp的原生实现,再看看jquery的ajax文档,了解一下各种参数如success函数中的data实际上就是从服务器传回来的,但是因为jquery没有让你看到他的回调函数,你会觉得这个data凭空飞出。
再就是了解,回调的概念,异步的概念,同源策略的概念,这才能把ajax给弄透。
如果说的有什么错的,后来的知道的同学请指正。
2017-04-05
【************看过来************】
接刚写的2。因为script不受同源策略约束,所以jsonp才得以实现,而script的src属性使用的是GET请求,因此jsonp是只支持GET而不接受POST的。大家可以理解为,你用<script>载入了一段服务器端返回的代码,而代码中包含一个带有服务器内参数的回调函数,收到回调函数后该函数运行,于是就算是用到了服务器里的数据。
3.因为ajax和jsonp无关,因此本课中的error函数实际上是无法触发的,因为我们压根没用到jqXHR这个对象,老师没讲这点是有点失误的。
接刚写的2。因为script不受同源策略约束,所以jsonp才得以实现,而script的src属性使用的是GET请求,因此jsonp是只支持GET而不接受POST的。大家可以理解为,你用<script>载入了一段服务器端返回的代码,而代码中包含一个带有服务器内参数的回调函数,收到回调函数后该函数运行,于是就算是用到了服务器里的数据。
3.因为ajax和jsonp无关,因此本课中的error函数实际上是无法触发的,因为我们压根没用到jqXHR这个对象,老师没讲这点是有点失误的。
2017-04-05
【************看过来************】
如果以后还有人上这个课的话,我简单讲一下我的理解,只讲关键的部分。
1.这课有些误导新人,上来就用jquery实现jsonp,实际上jsonp和ajax是不相关的东西,只是在jquery里,把jsonp融入到ajax方法中了,让你以为jsonp实际上是ajax下一种跨域的实现。
2.浏览器并不是对所有东西都有同源策略,此处是对ajax有同源策略,意思就是ajax技术里无法跨域,但是浏览器对<script><img>这些有src属性的标签并没有同源策略,jsonp的原理就在于此,通过用script 的 src属性向服务器请求数据。
如果以后还有人上这个课的话,我简单讲一下我的理解,只讲关键的部分。
1.这课有些误导新人,上来就用jquery实现jsonp,实际上jsonp和ajax是不相关的东西,只是在jquery里,把jsonp融入到ajax方法中了,让你以为jsonp实际上是ajax下一种跨域的实现。
2.浏览器并不是对所有东西都有同源策略,此处是对ajax有同源策略,意思就是ajax技术里无法跨域,但是浏览器对<script><img>这些有src属性的标签并没有同源策略,jsonp的原理就在于此,通过用script 的 src属性向服务器请求数据。
2017-04-05
状态 名称 描述
0 Uninitialized 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。
1 Open open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
2 Sent Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
3 Receiving 所有响应头部都已经接收到。响应体开始接收但未完成
4 Loaded HTTP 响应已经完全接收。
0 Uninitialized 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。
1 Open open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
2 Sent Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
3 Receiving 所有响应头部都已经接收到。响应体开始接收但未完成
4 Loaded HTTP 响应已经完全接收。
2017-04-05