何时在jquery中的ajax函数中使用async false和async true

何时使用在ajax调用中使用async false或async true。 在性能方面它有什么不同?

例子:

$.ajax({ url : endpoint, type : "post", async : false, success : function(data) { if (i==1){ getMetricData(data)} else if (i==2) { capture = data; } } }); 

这与表现无关……

在浏览器传递给其他代码之前需要完成ajax请求时,将async设置为false:

  
  1. 当异步设置设置为false时,将进行同步调用而不是异步调用。
  2. 当jQuery AJAX函数的异步设置设置为true时,将进行jQuery异步调用。 AJAX本身意味着异步JavaScript和XML,因此如果通过将async设置为false使其成为Synchronous,它将不再是AJAX调用。
  3. 有关更多信息,请参阅此链接

如果您可以并行执行多项操作(没有相互依赖性),那么最佳做法是异步。 如果您需要它来完成继续加载下一个可以使用同步的东西,但请注意,不推荐使用此选项以避免滥用同步:

不推荐使用jQuery.ajax()方法的异步选项,现在怎么办?

 ShowPopUpForToDoList: function (id, apprId, tab) { var snapShot = "isFromAlert"; if (tab != "Request") snapShot = "isFromTodoList"; $.ajax({ type: "GET", url: common.GetRootUrl('ActionForm/SetParamForToDoList'), data: { id: id, tab: tab }, async:false, success: function (data) { ActionForm.EditActionFormPopup(id, snapShot); } }); }, 

这里的SetParamForToDoList将在ActionForm.EditActionFormPopup函数触发后首先被激活。