Heim  >  Artikel  >  Web-Frontend  >  Der richtige Weg, Parameter an die Ajax-Callback-Funktion zu übergeben

Der richtige Weg, Parameter an die Ajax-Callback-Funktion zu übergeben

不言
不言Original
2018-07-02 16:44:493068Durchsuche

Dieser Artikel stellt hauptsächlich die richtige Methode zur Übergabe von Parametern der Ajax-Callback-Funktion vor Viele Freunde sind es gewohnt, falsch zu schreiben. Hier ist eine kurze Zusammenfassung.

Attributmethoden können Parameter annehmen:

function ClassX(name) { 
this.name = name; 
ClassX.prototype.show = function (param) { 
alert(this.name + " " + param); 
}; 
} 
var o = new ClassX("name"); 
o.show("param");//name param

Obwohl das Obige eine direkt in der Funktionssignatur definierte Referenz ist, rufen Sie o.show('param') nicht selbst auf, sondern Wenn es über andere Funktionsrückrufe übergeben wird, funktioniert es möglicherweise nicht, da andere diesen Parameter möglicherweise nicht an Sie übergeben, wenn Sie diese Methode aufrufen. Beispielsweise bei Verwendung von Ajax

request.onreadystatechange=function(param){. ...}

oder

request.onreadystatechange=callBack;function callBack(param){...}

funktioniert nicht, da zu diesem Zeitpunkt Ajax überhaupt nicht angegeben ist. Sie übergeben die param-Parameter. Der richtige Weg ist:

//request.onreadystatechange = orgEval;//错误作法 

//request.onreadystatechange = function (request, pOrgName) {//错误作法 
// orgEval(request, pOrgName); 
//}; 

//... 
request.onreadystatechange = function () {//正确作法 
orgEval(request, pOrgName);//在匿名函数内调用回调实现,并直接传入参数,这里用到了JavaScript的闭包性质 
}; 
//... 

function orgEval(req, orgName){ 
//... 
}

Auf diese Weise wird die Funktion durch den Aufruf des Rückrufs in der anonymen Funktion implementiert und die Parameter werden direkt übergeben.

Ajax übergibt Parameter an die Rückruffunktion von onreadystatechange

Ich habe in den letzten Tagen angefangen, Ajax zu lernen, und als ich eine Testseite erstellte, erhielt ich einen Rückruf Funktion, die Parameter an XMLHttpRequest.onreadystatechange übergeben hat, fordert diese Anforderung. Nachdem ich Baidu durchsucht hatte, stellte ich fest, dass viele Leute darüber reden. Die gefundene Methode sieht wahrscheinlich so aus:

xmlHttp.onreadystatechange=function(){callback(a,b);};

In der zwei Parameter a und b übergeben werden.

Später habe ich selbst eine Methode entdeckt. Es muss viele Leute geben, die die Methode kennen, aber ich konnte sie auf Baidu nicht finden, also werde ich sie hier aufschreiben und bewerben.

xmlHttp.a=a;
xmlHttp.b=b;
xmlHttp.onreadystatechange=callback;
.
.
function callback()
{
    if(this.readyState==4)
    {
        a=this.a;
        b=this.b;
    .
    }
}

Das heißt, fügen Sie dem xmlHttp-Objekt zwei Attribute hinzu und verwenden Sie diese direkt, um diese beiden Attribute in der Rückruffunktion aufzurufen.

Lassen Sie mich außerdem über meine eigenen Erfahrungen sprechen. Es ist am besten, xmlHttp als globale Variable zu schreiben. Zu Beginn stellte ich fest, dass einige Anforderungen den Zweck nicht erreichten. Später entdeckte ich, dass xmlHttp in eine Funktion geschrieben wurde. Als diese Funktion beendet war, endete auch der xmlHttp-Lebenszyklus. Auf diese Weise werden einige Anforderungen vor dem Ende des Lebenszyklus umgesetzt, andere verschwinden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Einführung in Ajax-Get- und Post-Anfragen


Über die Methode zum Durchlaufen von XML-Dokumenten mit Ajax


Das obige ist der detaillierte Inhalt vonDer richtige Weg, Parameter an die Ajax-Callback-Funktion zu übergeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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