Когда использовать 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

  • Если для параметра async установлено значение false, вместо асинхронного вызова создается синхронный вызов.
  • Когда для параметра async для функции jQuery AJAX установлено значение true, выполняется асинхронный вызов jQuery. Сам AJAX означает асинхронный JavaScript и XML и, следовательно, если вы сделаете его синхронным, установив для параметра async значение false, он больше не будет вызовом AJAX.
  • для получения дополнительной информации см. эту ссылку === > https://www.aspsnippets.com/Articles/jQuery-AJAX-Async-False-Synchronous-call-and-Async-True-Asynchronous-call-difference.aspx

Ответ 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.