在 jquery ajax中有一个参数 $.ajax({async: true, ...}); 将值设置为true和false有什么区别? 在浏览器传递给其他代码之前需要完成ajax请求时,将async设置为false: script // ... $.ajax(... async: false ...
$.ajax({async: true, ...});
将值设置为true和false有什么区别?
在浏览器传递给其他代码之前需要完成ajax请求时,将async设置为false:<script> // ... $.ajax(... async: false ...); // Hey browser! first complete this request, // then go for other codes $.ajax(...); // Executed after the completion of the previous async:false request. </script>
默认情况下,jQuery中的$.ajaxrequest设置为异步.变量名称为async,值设置为true.当我第一次了解它时,这给我带来了一些困惑,所以让我们来看看它.
同步(async:false) – 脚本停止并等待服务器在继续之前发送回复.在某些情况下,同步Ajax是必需的.
在标准Web应用程序中,客户与服务器之间的交互是同步的.这意味着必须在另一个之后发生.如果客户单击链接,则会将请求发送到服务器,然后服务器将结果发回.
由于请求丢失和挂起浏览器的危险,不建议在(onbefore)卸载事件处理程序之外的任何内容使用同步javascript,但如果您需要先从服务器收到回复,然后才能允许用户导航从页面,同步Javascript不仅是您的最佳选择.
$.ajax({ url: "file.php", type: "POST", async: false, success: function(data) { // ..... } });
Asynchronous(async:true) – 脚本允许页面继续处理的地方,并在脚本到达时处理回复.如果在请求和/或文件传输中出现任何问题,您的程序仍然能够识别问题并从中恢复.
异步处理可以避免在从服务器进行检索时发生延迟,因为访问者可以继续与网页进行交互,并且处理所请求的信息时,响应会在页面到达时更新页面.
$.ajax({ url: "file.php", type: "POST", async: true, success: function(data) { // ..... } });
另外看看这篇文章
Asynchronous and Synchronous AJAX calls