AJAX-Antworttextabruf im Prototyp
Bei der prototypbasierten AJAX-Entwicklung kann das Abrufen des Antworttextes eine Herausforderung sein. Ein gängiger Ansatz besteht darin, den onComplete-Rückruf zu verwenden, wie unten gezeigt:
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; }
Dieser Ansatz führt jedoch aufgrund der asynchronen Natur von AJAX-Anfragen häufig zu einer leeren Ergebnisvariablen. Der onComplete-Rückruf wird aufgerufen, nachdem die Some-Funktion abgeschlossen wurde, was zu einer zeitlichen Diskrepanz führt.
Um dieses Problem zu beheben, muss eine Callback-Funktion als Parameter an die Some-Funktion übergeben werden. Dieser Rückruf wird ausgeführt, wenn der AJAX-Vorgang abgeschlossen ist, wie im korrigierten Code unten gezeigt:
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 Szenario wird die Rückruffunktion innerhalb des onComplete-Handlers aufgerufen, um sicherzustellen, dass der Antworttext verfügbar ist wenn die Hauptfunktion abgeschlossen ist. Der übergebene Callback kann dann den Antworttext zur weiteren Verarbeitung nutzen.
Das obige ist der detaillierte Inhalt vonWie kann ich AJAX-Antworttext zuverlässig in Prototype.js abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!