Asynchroner JavaScript- und XML-(AJAX)-Antworttextabruf
Im Kontext der prototypbasierten AJAX-Entwicklung stellt das Abrufen des Antworttextes eine Herausforderung dar Herausforderung. Betrachten Sie den folgenden Code:
somefunction: function(){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; } } }); return result; }
In diesem Snippet wird die Funktion „onComplete“ asynchron ausgeführt, lange nachdem die Funktion „someFunction“ abgeschlossen ist. Dies führt zu einer leeren „Ergebnis“-Variable.
Um dies zu umgehen, wird in der bereitgestellten Antwort eine Lösung vorgeschlagen: Führen Sie eine Rückruffunktion für „someFunction“ als Parameter ein. Dieser Rückruf wird aufgerufen, sobald die AJAX-Operation abgeschlossen ist.
Hier ist der geänderte Code:
somefunction: function(callback){ var result = ""; myAjax = new Ajax.Request(postUrl, { method: 'post', postBody: postData, contentType: 'application/x-www-form-urlencoded', onComplete: function(transport){ if (200 == transport.status) { result = transport.responseText; callback(result); } } }); } somefunction(function(result){ alert(result); });
In diesem Fall nimmt „someFunction“ einen Rückruf als Parameter und ruft ihn mit auf Antworttext. Im Beispiel zeigt die Callback-Funktion eine Warnung mit dem abgerufenen Text an. Dieser Mechanismus stellt sicher, dass der Antworttext bei Bedarf für nachfolgende Funktionen verfügbar ist.
Das obige ist der detaillierte Inhalt vonWie kann ich AJAX-Antworttext synchron in Prototype.js abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!