Когда использовать aync false и async true в ajax-функции в jquery
Когда нужно использовать async false или async true при вызове ajax. С точки зрения производительности это имеет значение?
пример:
$.ajax({
url : endpoint,
type : "post",
async : false,
success : function(data) {
if (i==1){
getMetricData(data)}
else if (i==2)
{
capture = data;
}
}
});
Ответы
Ответ 1
Это не относится к производительности...
Вы устанавливаете async в 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>
Ответ 2
Ответ 3
Лучше всего идти асинхронно, если вы можете делать несколько вещей параллельно (без взаимозависимостей).
Если вам нужно, чтобы продолжить, чтобы продолжить загрузку следующей вещи, которую вы можете использовать синхронно, но обратите внимание, что этот параметр устарел, чтобы избежать злоупотребления синхронизацией:
jQuery.ajax() метод async метода устарел, что теперь?
Ответ 4
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
.