這篇文章主要為大家展示了“Fetch有什么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Fetch有什么用”這篇文章吧。
Fetch 的概念
Fetch 提供了對 Request 和 Response (以及其他與網絡請求有關的)對象的通用定義。使之今后可以被使用到更多的應用場景中:無論是 service worker、Cache API、又或者是其他處理請求和響應的方式,甚至是任何一種需要你自己在程序中生成響應的方式。
它同時還為有關聯性的概念,例如CORS和HTTP原生頭信息,提供一種新的定義,取代它們原來那種分離的定義。
發送請求或者獲取資源,需要使用 WindowOrWorkerGlobalScope.fetch() 方法。它在很多接口中都被實現了,更具體地說,是在 Window 和 WorkerGlobalScope 接口上。因此在幾乎所有環境中都可以用這個方法獲取到資源。
兼容性
要看一個新的 API 會不會火起來,最簡單的辦法就是看它的兼容性,畢竟,如果兼容性不好,那再好用的 API 也很難火起來。
Fetch 方法對除 IE 之外的瀏覽器來說,兼容性簡直不要太好,這可以說是已經擁有了大火的前提條件。
和 AJAX 的區別
既然是用來替代 AJAX 的,那必然是有一些 AJAX 所不具備的特性優勢了,否則,憑啥取代啊。
總結一下,區別如下:
Fetch 使用 Promise,不使用回調函數,因此大大簡化了寫法,寫起來更簡潔。
Fetch 采用模塊化設計,API 分散在多個對象上(Response 對象、Request 對象、Headers 對象),更合理一些;相比之下,XMLHttpRequest 的 API 設計并不是很好,輸入、輸出、狀態都在同一個接口管理,容易寫出非?;靵y的代碼。
Fetch 通過數據流(Stream 對象)處理數據,可以分塊讀取,有利于提高網站性能表現,減少內存占用,對于請求大文件或者網速慢的場景相當有用。XMLHTTPRequest 對象不支持數據流,所有的數據必須放在緩存里,不支持分塊讀取,必須等待全部拿到后,再一次性吐出來。
Fetch 是相當符合潮流的,至少,我們可以少寫很多回調函數了,代碼的逼格也可以有所提升了。
Fetch 的用法
fetch() 方法必須接受一個參數——資源的路徑。無論請求成功與否,它都返回一個 Promise 對象,resolve 對應請求的 Response?;菊Z法如下:
fetch(url) .then(...) .catch(...)
以上是“Fetch有什么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。