【问题标题】:The method Open of XMLHttpRequestXMLHttpRequest的Open方法
【发布时间】:2011-02-24 09:31:49
【问题描述】:

AJAX 中方法 open(method,url,async) 中的 Sync 和 Async 有什么区别。

【问题讨论】:

    标签: xml ajax xmlhttprequest


    【解决方案1】:

    同步是同步的,也就是阻塞; Async 是异步的,也就是非阻塞的。

    【讨论】:

      【解决方案2】:
      • 当使用async=false 调用open() 时,请求将在调用send() 返回之前发生。
      • 当用async=true 调用open() 时,对send() 的调用将立即返回。

      将 async 设置为 false 可提供更可预测的结果,因为在请求期间不会运行其他 javascript 代码,但它的显着缺点是在请求完成之前使页面无响应。

      【讨论】:

        【解决方案3】:

        同步意味着你的 javascript 将被阻止,直到你得到服务器的响应

        async 意味着对服务器的调用将发生在并行线程中,并且您的 js 将继续执行。

        你永远不应该使用同步——糟糕的用户界面

        补充:你很可能不应该直接使用 XMLHttpRequest —— 浏览器之间存在细微差别。最好使用 JQuery、yui、mootools 等库

        【讨论】:

        • -42 因为您根本没有提到 jQuery。你知道规则。
        • 糟糕,我的意思是 jquery,但我输入了 jscript。现在修好了。抱歉疏忽。 :-)
        【解决方案4】:

        如果您为 async 参数传递 true,调用将立即返回,并且将执行下一行 javascript(在 HTTP 请求返回之前)。

        如果你传递 false,它将阻塞直到 HTTP 调用返回。

        【讨论】:

          【解决方案5】:

          不同之处在于 Sync 不存在。忽略它。五年前我写了一个完整的同步小部件库,当我重写它时我成为了一个更好的程序员:-) 我在这句话中提到了 jQuery,但我更喜欢 YUI。 不管你做什么,看视频 Yahoo Theater:基本和高级 Javascript,Dom 的麻烦,一切。他们摇滚。

          【讨论】:

            猜你喜欢
            • 2013-01-29
            • 1970-01-01
            • 2010-11-28
            • 2012-08-11
            • 2011-06-01
            • 1970-01-01
            • 1970-01-01
            • 2019-04-27
            • 1970-01-01
            相关资源
            最近更新 更多