Fetch被稱為下一代Ajax技術,采用Promise方式來處理數(shù)據(jù)。是一種簡潔明了的API,比XMLHttpRequest更加簡單易用。
頁面中需要向服務器請求數(shù)據(jù)時,基本上都會使用Ajax來實現(xiàn)。(推薦學習:web前端視頻教程)
Ajax的本質是使用XMLHttpRequest對象來請求數(shù)據(jù),而XMLHttpRequest對象是通過事件的模式來實現(xiàn)返回數(shù)據(jù)的處理。
與XMLHttpRequest類似,F(xiàn)etch允許你發(fā)出AJAX請求。
區(qū)別在于Fetch API使用Promise方式,Promise是已經(jīng)正式發(fā)布的ES6的內容之一,因此是一種簡潔明了的API,比XMLHttpRequest更加簡單易用。
瀏覽器支持
Fetch 目前還不是 W3C 規(guī)范,因此原生支持率并不高。
幸運的是,引入下面這些 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 模式,現(xiàn)在就使用 async/await