Heim > Web-Frontend > Front-End-Fragen und Antworten > So ändern Sie eine Ajax-Anfrage von asynchron in synchron

So ändern Sie eine Ajax-Anfrage von asynchron in synchron

青灯夜游
Freigeben: 2022-01-17 16:28:32
Original
6317 Leute haben es durchsucht

AJAX kann entsprechend den verschiedenen asynchronen Werten in synchron und asynchron unterteilt werden. Standardmäßig ist der asynchrone Wert wahr (asynchrone Übermittlung). Wenn Sie asynchron in synchron ändern möchten, müssen Sie nur den asynchronen Wert auf falsch setzen.

So ändern Sie eine Ajax-Anfrage von asynchron in synchron

Die Betriebsumgebung dieses Tutorials: Windows 7-System, JavaScript-Version 1.8.5, Dell G3-Computer.

AJAX wird entsprechend dem Wert von async in synchron (async = false) und asynchron (async = true) unterteilt.

Standardmäßig ist async true (asynchrone Übermittlung).

Wenn Sie synchronisieren möchten, setzen Sie async einfach auf false.

Beispiel:

Bei der Verwendung von AJAX müssen Sie gelegentlich ein Array und die den Daten entsprechende ID von einer Schnittstelle abrufen und die Daten dann auf einer anderen Schnittstelle abrufen. Das anfängliche Schreiben lautet wie folgt:

$.get(url_1, function (data) {
        var dom = [];
        for (var i = 0; i < data.length; i++) {
            var item = data[i];
            
            //两个url不一致,根据id查找另一个表
            $.get(url_2, function (data) {
                var item_result = data;
                dom.push("<div> item_result.id</div>");    
            });
           
        }
        $("#id").empty().append(dom.join(&#39;&#39;));      
    });
Nach dem Login kopieren

Aber Zu diesem Zeitpunkt tritt häufig das Problem auf, dass nach dem Löschen des Arrays keine Daten geschrieben werden. Wenn Anfänger häufig fälschlicherweise denken, dass die Schnittstelle falsch ist, ist dies nicht der Fall. Dies liegt an Ajax-Methoden wie $ get (). Der Aufruf der Schnittstelle dauert einige Zeit, was dazu führt, dass der Push noch nicht abgeschlossen ist. Das heißt, das Array wird zu diesem Zeitpunkt gelöscht, es werden jedoch zu diesem Zeitpunkt keine Daten im Dom-Array gelesen. Der Ajax in der Schleife muss geändert werden, um synchronisiert zu werden. Die Codeänderung ist wie folgt:

$.get(url_1, function (data) {
        var dom = [];
        for (var i = 0; i < data.length; i++) {
            var item = data[i];
            
            //在第二次的Ajax前将异步改同步
            $.ajaxSettings.async = false;

            //两个url不一致,根据id查找另一个表
            $.get(url_2, function (data) {
                var item_result = data;
                dom.push("<div> item_result.id</div>");    
            });
           
            //注意在ajax中的push完成后,将其改回异步
            $.ajaxSettings.async = true;

        }
        $("#id").empty().append(dom.join(&#39;&#39;));      
    });
Nach dem Login kopieren

[Verwandte Tutorial-Empfehlungen:

AJAX-Video-Tutorial

]

Das obige ist der detaillierte Inhalt vonSo ändern Sie eine Ajax-Anfrage von asynchron in synchron. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage