2013-08-21 6 views
16

Wann verwenden Sie async false oder async True in einem Ajax-Aufruf. In Bezug auf die Leistung macht es einen Unterschied?Wann async false und async true in Ajax-Funktion in jquery verwenden

Beispiel:

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

       else if (i==2) 
       { 
        capture = data; 
       } 

     } 
    }); 
+0

Mögliche doppelte: http://stackoverflow.com/questions/1052453/ajax-requests-synchronous-vs-asynchronous –

+0

Es ist nicht eine Frage der Performance. – JJJ

+0

Im Grunde ist es hilfreich, wenn Sie die Codeausführung oder die Ausführung von Serviceaufrufen auf eine bestimmte Art und Weise, wie asynchrone oder synchrone Weise, vornehmen müssen, wenn diese Zeit sehr nützlich ist. nach Ihrem Code definieren nach diesem Code definieren Sie einige Code-und Ajax-Aufruf machen Async-Option wahr, dann wird es ausgeführt, wie asynchron. – VjyV

Antwort

25

es um Leistung nicht relativ ist ...

Sie async auf false gesetzt, wenn Sie brauchen, dass Ajax-Anforderung abgeschlossen sein, bevor der Browser auf andere Codes passiert:

<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> 
0

Es ist die beste Vorgehensweise, asynchron zu arbeiten, wenn Sie mehrere Dinge gleichzeitig tun können (keine Abhängigkeiten). Wenn Sie es brauchen, um weiterhin zu vervollständigen das nächste, was das Laden Sie synchron verwenden könnte, aber beachten Sie, dass diese Option Missbrauch synchron zu vermeiden, ist veraltet:

jQuery.ajax() method's async option deprecated, what now?

0
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); 
     } 
    }); 
}, 

Hier SetParamForToDoList erste excecuted wird nach einer Die Funktion ActionForm.EditActionFormPopup wird ausgelöst.

4
  1. Wenn die asynchrone Einstellung auf false festgelegt ist, wird ein synchroner Aufruf anstelle eines asynchronen Aufrufs ausgeführt.
  2. Wenn die asynchrone Einstellung der jQuery AJAX-Funktion auf "true" gesetzt ist, wird ein jQuery Asynchronous-Aufruf ausgeführt. AJAX selbst bedeutet asynchrones JavaScript und XML. Wenn Sie es also synchro- nisieren, indem Sie async auf false setzen, ist es kein AJAX-Aufruf mehr.
  3. für weitere Informationen lesen Sie bitte diesen Link ===>https://www.aspsnippets.com/Articles/jQuery-AJAX-Async-False-Synchronous-call-and-Async-True-Asynchronous-call-difference.aspx