为什么异步XMLHttpRequests优先于同步请求?

时间:2013-05-01 23:37:11

标签: javascript xmlhttprequest

异步和同步之间的区别是什么?差异如何影响请求?

2 个答案:

答案 0 :(得分:5)

来自Synchronous and asynchronous requests的Mozilla文章:

  

XMLHttpRequest支持同步和异步通信。但是,一般情况下,出于性能原因,异步请求应优先于同步请求。

     

简而言之,同步请求会阻止代码的执行,并可能泄漏内存和事件。这可能会导致严重的问题。使用同步请求的唯一可行原因是更容易在Web Workers中进行下载。

异步请求是XMLHttpRequest存在的主要原因。 XMLHttpRequest支持AJAX,其思想是让JavaScript代码运行,并且您的用户在您的JavaScript与后台服务器通信的同时对您的页面执行任何操作。例如,Gmail会以这种方式加载您的电子邮件。

同步请求会阻止您的脚本在传输完成时运行。简而言之,当异步请求可用时,没有理由这样做。如果你的Gmail一直冻结,那会很烦人,你不觉得吗?您很少(如果有的话)想要使用同步请求。

There are circumstances you must use a synchronous request,但在这些情况之外,您可能完全没有理由提出同步请求,并且完全有理由使用异步请求。

答案 1 :(得分:2)

异步请求允许您的脚本在等待服务器的回复时继续运行并执行其他操作。

同步请求会阻止脚本的执行,直到收到回复为止。这意味着您的应用程序将无响应,无法执行任何其他操作。