AJAX方法open(method,url,async)中Sync和Async的区别是什么。
答案 0 :(得分:4)
如果你传递true
async参数,调用将立即返回,下一行javascript将执行(在HTTP请求返回之前)。
如果传递false,它将阻塞,直到HTTP调用返回。
答案 1 :(得分:4)
区别在于Sync不存在。忽略它。五年前我写了一个完整的同步小部件库,当我重写它时,我成了一个更好的程序员:-) 我在这句话中提到jQuery,但我的偏好是YUI。 无论你做什么,都要观看视频 Yahoo Theater:基本和高级Javascript,Dom的麻烦,一切。他们摇滚。
答案 2 :(得分:1)
同步是同步的,a.k.a。阻止;异步是异步的,a.k.a。非阻塞。
答案 3 :(得分:1)
open()
致电async=false
时,请求会在致电send()
之前发出请求。open()
致电async=true
时,会立即致电send()
。将async设置为false会产生更可预测的结果,因为在请求期间不会运行其他javascript代码,但在请求完成之前,它会使页面无响应的重大缺点。
答案 4 :(得分:0)
同步意味着您的javascript将被阻止,直到您收到服务器的回复
async意味着对服务器的调用将在并行线程中发生,并且您的js将继续执行。
你永远不应该使用同步 - 人类的坏用户界面
补充:你很可能不应该直接使用XMLHttpRequest - 浏览器之间存在细微差别。使用像JQuery,yui,mootools等库这样的文件好多了