何时使用在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;
}
}
});
答案 0 :(得分:33)
这与表现无关......
当您需要在浏览器传递给其他代码之前完成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>
答案 1 :(得分:5)
答案 2 :(得分:1)
如果你可以并行执行多项操作(没有相互依赖关系),那么最好去异步。 如果您需要它来完成继续加载下一个可以使用同步的东西,但请注意,不推荐使用此选项以避免滥用同步:
答案 3 :(得分:1)
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
首先会被激活。