與Ajax
頁面中需要向伺服器請求數據時,基本上都會使用Ajax來實現。Ajax的本質是使用XMLHttpRequest對象來請求數據,而XMLHttpRequest對象是通過事件的模式來實現返回數據的處理。
與XMLHttpRequest類似,Fetch 允許你發出AJAX請求。區別在於Fetch API使用Promise方式,Promise是已經正式發布的ES6的內容之一,因此是一種簡潔明了的API,比XMLHttpRequest更加簡單易用。
瀏覽器支持
Fetch 目前還不是 W3C 規範,因此原生支持率並不高。
幸運的是,引入下面這些 polyfill 後可以完美支持 IE8+ :
1.由於 IE8 是 ES3,需要引入 ES5 的 polyfill: es5-shim, es5-sham
2.引入 Promise 的 polyfill: es6-promise3.引入 fetch 探測庫:fetch-detector
4.引入 fetch 的 polyfill: fetch-ie8
5.可選:如果你還使用了 jsonp,引入 fetch-jsonp
6.可選:開啟 Babel 的 runtime 模式,現在就使用 async/await