當(dāng)我們發(fā)送 Ajax 請(qǐng)求時(shí),我們通常會(huì)希望在請(qǐng)求成功后執(zhí)行一些操作。比如,當(dāng)用戶點(diǎn)擊一個(gè)按鈕時(shí),我們發(fā)送一個(gè) Ajax 請(qǐng)求來獲取最新的數(shù)據(jù)并將其展示在頁面上。在這種情況下,我們可以使用 .done() 方法來處理成功響應(yīng),并在函數(shù)內(nèi)部執(zhí)行相應(yīng)的操作。
$.ajax({ url: "example.com/data", method: "GET" }) .done(function(response) { // 在這里處理成功響應(yīng) console.log(response); // 執(zhí)行其他操作... });
以上代碼中,我們發(fā)送了一個(gè) GET 請(qǐng)求到指定的 URL,并使用 .done() 方法來處理成功響應(yīng)。當(dāng)請(qǐng)求成功完成后,服務(wù)器將返回響應(yīng)數(shù)據(jù),并將其作為參數(shù)傳遞給 .done() 方法中的函數(shù)。在這個(gè)例子中,我們將響應(yīng)數(shù)據(jù)打印到控制臺(tái),以便進(jìn)一步對(duì)其進(jìn)行處理。
.done() 的參數(shù)還可以接受多個(gè)函數(shù),這時(shí)每個(gè)函數(shù)都會(huì)在請(qǐng)求成功后依次執(zhí)行。例如:
$.ajax({ url: "example.com/data", method: "GET" }) .done(function(response) { // 處理第一個(gè)成功響應(yīng) }) .done(function(response) { // 處理第二個(gè)成功響應(yīng) });
在這個(gè)例子中,我們定義了兩個(gè) .done() 方法,每個(gè)方法都會(huì)在請(qǐng)求成功后被依次調(diào)用。這使得我們可以根據(jù)需求,將數(shù)據(jù)處理分解為多個(gè)函數(shù),使代碼更加模塊化和可維護(hù)。
另外,.done() 方法還可以用于鏈?zhǔn)秸{(diào)用。這是因?yàn)?.done() 方法返回的是一個(gè) jQuery 對(duì)象,我們可以在該對(duì)象上繼續(xù)調(diào)用其他的 jQuery 方法。例如:
$.ajax({ url: "example.com/data", method: "GET" }) .done(function(response) { // 處理成功響應(yīng) }) .fail(function(error) { // 處理失敗響應(yīng) }) .always(function() { // 不論請(qǐng)求成功或失敗,都會(huì)執(zhí)行的操作 });
上述代碼中,我們使用 .fail() 方法來處理請(qǐng)求失敗的情況,并使用 .always() 方法來定義無論請(qǐng)求成功或失敗,都要執(zhí)行的操作。這種鏈?zhǔn)秸{(diào)用的方式使得代碼更加清晰易讀,并且可以更好地處理不同情況下的邏輯。
總結(jié)而言,.done() 是 Ajax 中一個(gè)非常有用的方法,用于處理成功的響應(yīng)。我們可以在 .done() 的參數(shù)中定義需要執(zhí)行的操作,并在函數(shù)內(nèi)部處理響應(yīng)數(shù)據(jù)。無論是處理單個(gè)函數(shù)、多個(gè)函數(shù)或進(jìn)行鏈?zhǔn)秸{(diào)用,.done() 的參數(shù)提供了靈活性和可維護(hù)性,幫助我們更好地優(yōu)化用戶體驗(yàn),提高網(wǎng)頁性能。