【发布时间】:2011-02-24 09:31:49
【问题描述】:
AJAX 中方法 open(method,url,async) 中的 Sync 和 Async 有什么区别。
【问题讨论】:
标签: xml ajax xmlhttprequest
AJAX 中方法 open(method,url,async) 中的 Sync 和 Async 有什么区别。
【问题讨论】:
标签: xml ajax xmlhttprequest
同步是同步的,也就是阻塞; Async 是异步的,也就是非阻塞的。
【讨论】:
async=false 调用open() 时,请求将在调用send() 返回之前发生。async=true 调用open() 时,对send() 的调用将立即返回。将 async 设置为 false 可提供更可预测的结果,因为在请求期间不会运行其他 javascript 代码,但它的显着缺点是在请求完成之前使页面无响应。
【讨论】:
同步意味着你的 javascript 将被阻止,直到你得到服务器的响应
async 意味着对服务器的调用将发生在并行线程中,并且您的 js 将继续执行。
你永远不应该使用同步——糟糕的用户界面
补充:你很可能不应该直接使用 XMLHttpRequest —— 浏览器之间存在细微差别。最好使用 JQuery、yui、mootools 等库
【讨论】:
如果您为 async 参数传递 true,调用将立即返回,并且将执行下一行 javascript(在 HTTP 请求返回之前)。
如果你传递 false,它将阻塞直到 HTTP 调用返回。
【讨论】:
不同之处在于 Sync 不存在。忽略它。五年前我写了一个完整的同步小部件库,当我重写它时我成为了一个更好的程序员:-) 我在这句话中提到了 jQuery,但我更喜欢 YUI。 不管你做什么,看视频 Yahoo Theater:基本和高级 Javascript,Dom 的麻烦,一切。他们摇滚。
【讨论】: