You set async to false,当您需要在浏览器传递给其他代码之前完成 ajax 请求时:
<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>
By default, the
$.ajaxrequest in jQuery is set to asynchronous
。变量名称为 async,值设置为 true。这也让我在刚开始了解它的时候有点困惑,所以让我们回顾一下。
同步(异步: false )– 脚本停止并等待服务器发回回复,然后再继续。在某些情况下,同步 Ajax 是必需的。
在标准 Web 应用程序中,客户和服务器之间的交互是同步的。这意味着其中一个必须在另一个之后发生。如果客户单击链接,请求将发送到服务器,然后服务器将结果发回。
由于存在请求丢失和挂起浏览器的危险,因此不建议将同步 JavaScript 用于 (onbefore)unload 事件处理程序之外的任何内容,但如果您需要在允许用户离开之前从服务器收到回复从页面上看,同步 Javascript 不仅仅是您的最佳选择。
$.ajax({
url: "file.php",
type: "POST",
async: false,
success: function(data) {
// .....
}
});
异步( async: true )– 脚本允许继续处理页面,并在回复到达时处理回复。如果文件请求和/或传输中出现任何问题,您的程序仍然能够识别问题并从中恢复。
异步处理避免了从服务器检索时的延迟,因为访问者可以继续与网页交互,并且请求的信息将在页面到达时通过更新页面的响应进行处理。
$.ajax({
url: "file.php",
type: "POST",
async: true,
success: function(data) {
// .....
}
});
也可以看看这篇文章
异步和同步 AJAX 调用 http://www.digimantra.com/tutorials/asynchronous-and-synchronous-ajax-calls/