Die Fragen:jQuery Ajax() mit Erfolg, Fehler und vollständige vs .done(), .fail() und immer()
- Sollten wir unsere Codierung, wie unten vorgeschlagen ändern?
- Gibt es einen Unterschied zwischen
.done()
&success:
,.fail()
&error:
und.always()
&complete:
?
Die Präambel:
Ich war zusammen einen jQuery.ajax Aufruf setzen, die ich erfolgreich auch in der Vergangenheit getan haben. Etwas wie folgt aus:
$.ajax(
{
url: someUrl,
type: 'POST',
data: someData,
datatype: 'json',
success: function (data) { someSuccessFunction(data); },
error: function (jqXHR, textStatus, errorThrown) { someErrorFunction(); }
});
Während einen kurzen Blick auf einige Dokumentation nehmen, stieß ich auf eine Referenz besagt, dass der Erfolg, Fehler und vollständige Rückrufe als von jQuery 1.8 sind veraltet. Verwenden Sie stattdessen jqXHR.done(), jqXHR.fail() und jqXHR.always(), um den Code für das Entfernen vorzubereiten.
Wir sollten daher etwas anfangen Codierung wie diese statt:
$.ajax("example.php")
.done(function (data) { someSuccessFunction(data); })
.fail(function (jqXHR, textStatus, errorThrown) { someErrorFunction(); })
.always(function() { alert("complete"); });
i die zweite Methode bevorzugen ... wo das Versprechen von Ajax zurück verwendet wird –
Die Rückrufe werden nicht mehr unterstützt. Die verwandten Methoden auf dem jqxhr-Objekt sind. –
Ich stimme Arun zu, auch ich denke, das ist persönlich einfacher zu lesen – Rooster