如何在AJAX中取消XMLHttpRequest?


我們將使用“abort()”方法來取消XMLHttpRequest。這將停止當前請求繼續執行。將來,我們將確保正確取消任何不再需要的請求以最佳化效能。

讓我們首先了解什麼是XML HttpRequest。XMLHttpRequest是一個JavaScript物件,允許Web開發人員向伺服器發出HTTP請求,而無需重新載入整個頁面。它通常用於建立動態和互動式的Web應用程式。

該API可用於以不同的格式(例如文字、XML和JSON)檢索資料。所有現代Web瀏覽器都支援XMLHttpRequest。它是AJAX(非同步JavaScript和XML)的基礎,它允許更新網頁的部分內容,而無需重新載入整個頁面。

方法

要取消AJAX中的XMLHttpRequest,可以使用XMLHttpRequest物件的abort()方法。例如:

var xhr = new XMLHttpRequest();
xhr.open("GET", "example.com", true);
// Cancel the request
xhr.abort();

它將停止向伺服器傳送請求,如果請求已經發送,它將停止處理響應。

您還可以使用xhr.onabort事件來跟蹤請求是否已被取消,如下所示。

xhr.onabort = function() {
  console.log("Request cancelled");
}

需要注意的是,abort()方法僅在請求尚未完成時才有效。如果請求已經完成,呼叫abort()將不起作用。

示例

以下是如何使用JavaScript中的abort()方法取消XMLHttpRequest的簡單示例:

var xhr = new XMLHttpRequest(); xhr.open("GET", "example.php"); // Store the request in a variable var request = xhr.send(); // Later on, if you want to cancel the request request.abort();
  • 在這個例子中,我們首先建立一個XMLHttpRequest物件的新例項,並開啟一個到端點https://jsonplaceholder.typicode.com/photos的GET請求。

  • 然後我們將請求儲存在一個變數中併發送它。

  • 如果在任何時候我們想要取消請求,我們可以簡單地對請求變數呼叫abort()方法。

  • 這將立即停止處理請求並阻止任何進一步的操作。

  • 需要注意的是,一旦XMLHttpRequest被中止,就無法重新啟動。

  • 此外,最好在呼叫abort方法之前檢查請求的readyState屬性,因為請求可能已經完成,並且abort方法將不起作用。

更新於:2023年2月6日

1K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告