Ich habe so codiert:
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
Aber wenn ich mir die jQuery- .ajax()
Dokumentation am Ende ansehe, scheint es nahezulegen, dass ich wie folgt codieren sollte, oder zumindest schlägt es vor, a .done()
und a hinzuzufügen .fail()
:
var request = $.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
});
request.done(function (data) {
xxx;
});
request.fail(function (jqXHR, textStatus) {
xxx;
});
Aktualisieren
Wenn ich so codiere, ist es dasselbe oder hat es einen Vorteil, es in drei Teile zu teilen?
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
}).done(function (data) {
xxx;
}).fail(function (jqXHR, textStatus) {
xxx;
});
.error
,.success
) , die sich zugunsten des universellere Latente Muster veraltet, aber die Parameter an dieajax
Methode nicht veraltet und sind gültig und akzeptabel - auch in jQuery 1.9 / 2.0!ajax
Gibt in allen aktuellen Formularen immer noch einen Zurückgestellten zurück. möglicherweise mit bereits angehängten verzögerten Rückrufen.jqXHR.success = jqXHR.done;
.success
,fail
,always
.Ich möchte etwas zu @Michael Laffargues Beitrag hinzufügen:
jqXHR.done()
ist schneller!jqXHR.success()
haben einige Ladezeit im Rückruf und können manchmal Skript übertreiben. Ich finde das schon mal schwer.AKTUALISIEREN:
Verwenden Sie
jqXHR.done()
,jqXHR.fail()
undjqXHR.always()
Sie können besser mit Ajax-Anfrage bearbeiten. Im Allgemeinen können Sie Ajax in einer Variablen oder einem Objekt definieren und diese Variable oder dieses Objekt in einem beliebigen Teil Ihres Codes verwenden, um Daten schneller abzurufen. Gutes Beispiel:quelle
In einfachen Worten
Wenn es den info.text erhält, wird es alarmieren und welche Funktion Sie auch immer hinzufügen oder wenn es nicht möglich ist, info.text vom Server abzurufen, dann alarmiert oder fehlerhaft.
quelle
Wenn wir JQuery in unserer alten vorhandenen Anwendung von 1.x auf 2x oder 3.x migrieren, verwenden wir .done, .fail anstelle von success, error, da die JQuery-Up-Abstufung für diese Methoden veraltet sein wird Wenn wir beispielsweise Server-Webmethoden aufrufen, gibt der Server Versprechen-Objekte an die aufrufenden Methoden (Ajax-Methoden) zurück, und diese Versprechen-Objekte enthalten die Methoden .done, .fail..etc. Unten ist das Beispiel (es ist für POST-Anfragen genauso, wie wir es für einen Anfrage-Typ wie GET konstruieren können ...)
quelle