react.js - react实现在ie8上的一些类似shiv和shim的解决方案是否万能

查看:116
本文介绍了react.js - react实现在ie8上的一些类似shiv和shim的解决方案是否万能的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

关于网上流行的几种解决方案

shim/polyfill
来对低级浏览器各个缺失的API、对象做补全

es5-shim/es5-sham
优点:多而全、可靠的shim库
缺点:console/addEventListener没做容错兼容,Object.defineProperty在某些特殊版本有可能会有问题,但是基本可用。
这作者还有做es6的shim

html5Shiv
html5shiv主要解决HTML5提出的新的元素(section,header,footer)不被IE6-9识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。html5shiv就是为了解决这个问题存在的

想跟踩过兼容性坑的高玩了解一下,以上或者类似的解决方案是能完全解决兼容问题,比如所有es6语法,es7的fetch语法,有这些解决方案、是否可以毫无忧虑的大胆尝试各种高级写法?想请教高玩心得。

解决方案

垫片(shim)这种东西,无疑只是在执行到语法时,找其中的可用替代语法来接近取代而已。我可以说不需要抱太高的期待,所有的垫片或填充(polyfill)都不是保证一定能发挥出功能的,也不保证一定没问题,你举出的这几个专案,里面都一堆人报错,不要说ie8,ie9或ie10都有一些问题。并不是不能用但总个来说,坑一定多。

垫片或填充(polyfill)的目的是在于让这语法能有效,但就算是能执行,效能也不一定好。以我使用es6-promise填充在原来不支持的ie上的经验,效能实不好,在复杂的应用上实在不行。

回到问题本身,主因是React宣布不再支持ie8,ie8有多大市场?根据百度流量研究院的最近6个月的统计,ie约有28%,22%是ie8 ,去年同期多少?ie是35%,ie8是16%,明显年年下降。明年可能剩更少。

你为了10多%的ie8的相容性,目的无非是要照顾更多的用户,但可能要花费更多的精力测试向下相容性,时间成本就可能要细算一下值不值了。仍在非用ie8而不升版本的电脑硬件,因为win7都能升到11版本了,不升等的理由是什么?跑不动?还是有什么特别非得用ie8的理由的应用。但如果是因为硬件旧的问题,那这硬件能跑什么炫丽的动画特效与顺畅的游戏?看起来也是很困难。

这篇关于react.js - react实现在ie8上的一些类似shiv和shim的解决方案是否万能的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆