jQuery的always()方法是一個(gè)常用的回調(diào)方法,用于在Ajax應(yīng)用程序中,當(dāng)成功或失敗的情況下執(zhí)行一些代碼。與回調(diào)方法resolve()或reject()不同的是,無(wú)論成功或失敗,always()方法都將被執(zhí)行。
$.ajax({ url: "example.php", success: function(){ alert("請(qǐng)求成功!"); }, error: function(){ alert("請(qǐng)求失??!"); } }).always(function(){ alert("請(qǐng)求完成!"); });
上面的代碼,無(wú)論請(qǐng)求是否成功,always()方法都將被執(zhí)行。在這種情況下,您可以使用always()方法來(lái)清除頁(yè)面上的加載圖像或禁用提交按鈕等等。
除了Ajax請(qǐng)求,always()方法還可以用于延遲的情況下執(zhí)行一些代碼。例如,您可以使用Deferred()對(duì)象,將always()方法附加到延遲的Promise對(duì)象上,以在操作完成后執(zhí)行一些代碼。
var d = $.Deferred(); d.done(function(result) { alert("Success: " + result); }); d.fail(function(result) { alert("Fail: " + result); }); d.always(function(result) { alert("Always: " + result); }); setTimeout(function(){ d.resolve("異步請(qǐng)求已成功"); }, 1000);
上面的代碼使用了Deferred對(duì)象。當(dāng)d.resolve()方法被調(diào)用時(shí),done()方法將會(huì)被執(zhí)行。如果d.reject()方法被調(diào)用,fail()方法將會(huì)被執(zhí)行。無(wú)論成功或失敗,always()方法都將被執(zhí)行。
總之,always()方法是一個(gè)十分有用的回調(diào)方法,用于在任何情況下都能執(zhí)行一些代碼。如果您希望在Ajax請(qǐng)求完成后執(zhí)行一些代碼,或者在延遲完成時(shí)執(zhí)行一些代碼,那么always()方法是一個(gè)不錯(cuò)的選擇。