提高 fetch 兼容性

之前的一篇文章说明了 fetch 的具体用法,然而原生 fetch 的兼容性真的贼惨。

看完这个图是不是想放弃 fetch 了,酱紫是不对滴,作为一只前端,你要有对于所有前端相关的新技术都很敏感,即使它的兼容性不太好 @&3%!&@#*&!!@$%^&@%,前面都是扯淡的,下面说人话,只要加上一些烂七八糟的依赖,就可以使 fetch 兼容到 ie8+*!

引入 es6 的 polyfill: babel-polyfill
引入 promise 的 polyfill: es6-promise
引入 fetch 探测库:fetch-detector
引入 fetch 的 polyfill: fetch-ie8
可选:如果你还使用了 jsonp,引入 fetch-jsonp

bash 执行

cnpm install babel-polyfill es6-promise fetch-detector fetch-ie8 --save

js 中引入

import 'babel-polyfill';
require('es6-promise').polyfill();
import 'fetch-detector';
import 'fetch-ie8';

注意: fetch-detector 一定要在 fetch-ie8 之前引入

按照上面所说,引入了相关依赖以后,就可以在 ie8+ 的项目中尽情的使用 fetch 了,虽然 fetch 的优点很多,但是相对于 ajax 来说,还是有一些缺点的,具体可以看这篇文章 传统 Ajax 已死,Fetch 永生 , 关于 fetch 的相关方法与参数建议查看 MDN,关于 promise 的相关知识建议查看阮一峰老师的博客

:)

推荐阅读更多精彩内容