
- AJAX 教程
- AJAX - 首頁
- AJAX - 什麼是 AJAX?
- AJAX - 歷史
- AJAX - 動態網站與靜態網站
- AJAX - 技術
- AJAX - 動作
- AJAX - XMLHttpRequest
- AJAX - 傳送請求
- AJAX - 請求型別
- AJAX - 處理響應
- AJAX - 處理二進位制資料
- AJAX - 提交表單
- AJAX - 檔案上傳
- AJAX - FormData 物件
- AJAX - 傳送 POST 請求
- AJAX - 傳送 PUT 請求
- AJAX - 傳送 JSON 資料
- AJAX - 傳送資料物件
- AJAX - 監控進度
- AJAX - 狀態碼
- AJAX - 應用
- AJAX - 瀏覽器相容性
- AJAX - 示例
- AJAX - 瀏覽器支援
- AJAX - XMLHttpRequest
- AJAX - 資料庫操作
- AJAX - 安全性
- AJAX - 問題
- Fetch API 基礎
- Fetch API - 基礎
- Fetch API 與 XMLHttpRequest
- Fetch API - 瀏覽器相容性
- Fetch API - 頭部資訊
- Fetch API - 請求
- Fetch API - 響應
- Fetch API - 主體資料
- Fetch API - 憑據
- Fetch API - 傳送 GET 請求
- Fetch API - 傳送 POST 請求
- Fetch API - 傳送 PUT 請求
- Fetch API - 傳送 JSON 資料
- Fetch API - 傳送資料物件
- Fetch API - 自定義請求物件
- Fetch API - 上傳檔案
- Fetch API - 處理二進位制資料
- Fetch API - 狀態碼
- Stream API 基礎
- Stream API - 基礎
- Stream API - 可讀流
- Stream API - 可寫流
- Stream API - 變換流
- Stream API - 請求物件
- Stream API - 響應主體
- Stream API - 錯誤處理
- AJAX 有用資源
- AJAX - 快速指南
- AJAX - 有用資源
- AJAX - 討論
Fetch API 與 XMLHttpRequest
XMLHttpRequest 物件用於非同步地與伺服器通訊,這意味著我們可以在後臺與伺服器交換資料,而無需重新整理整個頁面。XMLHttpRequest 是最常用的技術,因此大多數主流瀏覽器(如 Google Chrome、Safari、Mozilla Firefox 或 Opera)都使用它。它還支援純文字、JSON 資料和許多其他資料格式。它非常易於使用,並提供各種方法和屬性來執行操作。我們可以使用 `XMLHttpRequest()` 建構函式建立一個 XMLHttpRequest 物件。
語法
variableName = new XMLHttpRequest()
使用 `new` 關鍵字和 `XMLHttpRequest()` 建構函式,我們可以建立一個新的 XMLHttpRequest 物件。必須在呼叫 `open()` 函式初始化它之前建立此物件,然後才能呼叫 `send()` 函式將請求傳送到 Web 伺服器。
Fetch API 提供了一個用於從伺服器獲取/檢索資源的介面。它是 XMLHttpRequest 的現代替代方案。由於它支援請求和響應的通用定義,因此如果將來需要用於快取 API、Service Worker、處理或修改請求和響應等,我們可以訪問它們。它非常簡單、易用且一致。或者我們可以說,與 XMLHttpRequest 相比,它提供了一種現代且靈活的方法來建立 HTTP 請求和處理響應。它基於 Promise API,提供了清晰的語法和更好的錯誤處理。
語法
fetch(res)
其中 `fetch()` 接受一個必選引數 `res`。`res` 引數定義要獲取的資源,它可以是字串、任何其他物件或請求物件。除了必選引數外,它還可以接受一個可選引數,例如方法、頭部資訊、主體、模式快取、同源等。
Fetch API 與 XMLHttpRequest
以下是 Fetch API 和 XMLHttpRequest 之間的區別:
區別 | Fetch API | XMLHttpRequest |
---|---|---|
語法 |
眾所周知,Fetch API 是基於 Promise 的 API,因此它提供了更清晰的語法和更好的錯誤處理方法。 |
XHR 基於回撥方法,其語法不如 Fetch API 好。 |
跨源資源共享 (CORS) |
Fetch API 可以很好地處理 CORS 請求,無需任何額外配置。 |
XMLHttpRequest 需要特殊的配置才能處理或發出跨域請求。 |
請求和響應頭部資訊 |
Fetch API 提供了更靈活的方式來處理請求和響應頭部資訊。 |
XMLHttpRequest 提供了有限數量的方法來處理請求和響應頭部資訊。 |
流和解析 |
Fetch API 對流和解析大型響應提供了良好的支援,因此它可以提高效能並減少記憶體使用。 |
XMLHttpRequest 需要自定義程式才能獲得此功能。 |
瀏覽器相容性 |
Fetch API 比較新,因此可能不被舊版瀏覽器支援。 |
XMLHttpRequest 已經使用了多年,因此幾乎所有瀏覽器都支援它。 |
Cookie 和憑據控制 |
Fetch API 對 Cookie 和憑據提供了良好的控制,因此與 XMLHttpRequest 相比,我們可以輕鬆地進行身份驗證和授權。 |
XMLHttpRequest 對 Cookie 和憑據的支援較少。 |
超時 |
Fetch API 不支援超時,因此請求將持續到瀏覽器選擇請求為止。 |
XMLHttpRequest 支援超時。 |
結論
這些是 Fetch API 和 XMLHttpRequest 之間的主要區別。與 XMLHttpRequest 相比,Fetch API 更強大且更容易理解。它也受所有現代瀏覽器支援,但 XMLHttpRequest 僅受舊版瀏覽器支援。在下一篇文章中,我們將學習 `fetch()` 函式。