Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der Ajax-Synchronisation und Asynchronität in JQuery
Jquery-Ajax-Synchronisierung bedeutet, dass beim Laden des JS-Codes in den aktuellen Ajax der gesamte Code auf der Seite nicht mehr geladen wird und die Seite in einem angehaltenen Animationszustand angezeigt wird. Wenn der Ajax abgeschlossen ist, wird er fortgesetzt Um andere Codes auszuführen, wird der Suspendierungsstatus aufgehoben. Asynchron bedeutet, dass andere Codes ausgeführt werden können, während dieser Ajax-Code ausgeführt wird. In diesem Artikel finden Sie eine detaillierte Erklärung:
Wenn ich zuvor JQUERY-Code geschrieben habe, muss ich die Ausführungsreihenfolge des Codes berücksichtigen, wenn ich auf AJAX-Ladedaten stoße. Aktuelle Projekte haben die AJAX-Synchronisierung verwendet. Diese Synchronisierung bedeutet, dass beim Laden des JS-Codes in das aktuelle AJAX der gesamte Code auf der Seite nicht mehr geladen wird und die Seite den angehaltenen Animationsstatus verlässt. Wenn das AJAX abgeschlossen ist, wird es weiterhin ausgeführt Codes und der angehaltene Animationsstatus der Seite werden freigegeben.
Asynchron können andere Codes ausgeführt werden, während dieser AJAX-Code ausgeführt wird.
async:false von jquery, dieses Attribut
ist standardmäßig true: asynchron, false: synchron.
$.ajax({ type: "post", url: "path", cache:false, async:false, dataType: ($.browser.msie) ? "text" : "xml", success: function(xmlobj){ } });
Das Vorhandensein dieses Attributs kann das Problem der Codeausführung der Buchreihenfolge relativ reduzieren, aber wenn es zu oft verwendet wird, friert die Seite zu oft ein. Dies führt zu einer schlechten Benutzererfahrung~!
Offizielle Erklärung von Async und Erfolg in $.Ajax():
async Boolean Default: true By default, all requests are sent asynchronous (e.g. this is set to true by default). If you need synchronous requests, set this option to false. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active. success Function A function to be called if the request succeeds. The function gets passed two arguments: The data returned from the server, formatted according to the 'dataType' parameter, and a string describing the status. This is an Ajax Event.
Hier ist der Standardeinstellungswert von Async true, This Die Situation ist asynchron, was bedeutet, dass die Rezeption das Skript hinter dem Ajax-Block weiterhin ausführt, nachdem Ajax eine Anfrage gesendet hat und auf die Rückkehr des Servers wartet, bis der Server das richtige Ergebnis zurückgibt Es wird gesagt, dass zu diesem Zeitpunkt zwei Threads ausgeführt werden, ein Thread nach dem Ajax-Block, der die Anfrage sendet, und das Skript (ein anderer Thread) nach dem Ajax-Block. Beispiel:
$.ajax({ type:"POST", url:"Venue.aspx?act=init", dataType:"html", success:function(result){ //function1() f1(); f2(); } failure:function (result) { alert('Failed'); }, }
function2();
Wenn der Ajax-Block im obigen Beispiel eine Anfrage stellt, bleibt er in function1() und wartet auf die Rückkehr von der Serverseite , aber gleichzeitig (während dieses Wartevorgangs) wird die Vordergrundfunktion2() ausgeführt, das heißt, zu diesem Zeitpunkt erscheinen zwei Threads, nennen wir sie hier function1() und function2().
Wenn asyn auf false gesetzt ist, ist die Ajax-Anfrage synchron. Das heißt, nachdem der Ajax-Block zu diesem Zeitpunkt eine Anfrage gesendet hat, wartet er bei Funktion1() und führt Funktion2() erst aus Der Teil function1() wird ausgeführt.
Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.
Verwandte Artikel:
jquery und PHP kombiniert mit AJAX Long Polling
Vorläufiges Verständnis von JavaScript, Ajax, jQuery und Vergleich der Beziehung zwischen den drei
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Ajax-Synchronisation und Asynchronität in JQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!