tmallfe / tmallfe.github.io

天猫前端
http://tmallfe.github.io
3.93k stars 508 forks source link

天猫即将不支持IE8 #40

Open maisui99 opened 7 years ago

maisui99 commented 7 years ago

2015年不支持IE6/7

2015年年底,天猫和淘宝一起推动完成了IE6/7不支持项目,当时不支持的主要原因有:

  1. 从16年1月20号开始,微软不再支持IE7/8的升级(14年4月8号就停止了对IE6的升级支持)对于这部分用户如果不升级到最新的浏览器,未来如果报出漏洞,可能会导致用户数据出现泄漏。
  2. 前端开源社区技术方案基本都已不再考虑IE6/7,如果还要继续兼容IE6/7,对于开发效率提升、技术方案简化都是一个非常大的阻碍。
  3. https相关的原因,SHA-1签名的证书被证明已经可以在短时间内破解,所有证书供应商从16年1月1日开始不再签发SHA-1签名的证书,所有浏览器和操作系统也会将SHA-1证书标记为不安全,受影响的用户主要包括使用Windows XP SP的IE用户和Android2.3版本以下的用户。

除此之外,以上这些用户还会因为不支持HSTS(非常容易被劫持)、前向加密(也就是RSA交换的密钥未来可以被破解)、TLS1.2(更安全)、SNI(方便运维,否则需要维护很多ip地址)、session ticket(提高性能,降低服务器消耗), OCSP stapling(获取证书状态,提高性能和安全性)等特性,给我们在安全、性能、运维上带来很大的麻烦。

当时的总结里,我们写了这样一句话:

期待IE8/9也成为历史的那一天

看起来,这一天比我们想象的来的早一点。

为什么考虑不支持IE8

2016年双11结束了,回顾2016年,天猫前端彻底从KISSY时代迁移到了符合Web标准的开发模式,也在业务中落地了包括Weex、React及周边的配套,尝试将整体的技术方案和开源社区做更多的结合。这部分可以参考《天猫前端基础技术体系MAP简介》

而随着整体技术方案的推进,IE8慢慢也变成了一个问题,从Promise里的.catch()和IE8的关键词冲突,到IE8 defineProperty/getOwnPropertyDescriptor的问题,还有部分版本的uglify打包的时候打出了类似var a = function a(){}这样的代码,导致的IE8下各种变量混乱。这些问题的暴露一部分原因是工具和配套没有跟上,在开发期没有暴露问题出来,另一方面也说明了社区对于IE8的降级及复杂方案的简化态度。

这些积累的问题,可以通过增加各种兼容手段,各种工具在打包的时候做各种检查进行规避。但是反过来思考,这些问题也是一个契机,是否到了不支持IE8的时机了?

如何决定不支持IE8

接下来,就是明确不支持IE8这个事情要不要执行了。其中,对于技术上的益处,显而易见,但是对于用户的影响也是必须要考虑的。所以,还是需要各种考虑目前的数据和微软官方的策略,这些对于决策来说非常重要,基于数据和事实描述问题也更能说服业务方。

数据

基于2016年11月份对天猫整体浏览器分布的分析和统计,目前IE8的占比情况已经非常类似2015年IE6/7的情况,加上无线端流量远超PC端流量,对于大盘来说,IE8这部分的数据已经非常小。

微软官方的策略

微软对自己的产品都定义了明确的生命周期,而IE的生命周期则是和所对应的windows操作系统绑定。

从 2016 年 1 月 12 日开始,仅适用于受支持操作系统的最新版本的 Internet Explorer 才能获得技术支持和安全更新,如下表所示:

Windows 桌面操作系统 Internet Explorer 版本
Windows Vista SP2 Internet Explorer 9
Windows 7 SP1 Internet Explorer 11
Windows 8.1 更新 Internet Explorer 11
Windows 10* Internet Explorer 11

其他浏览器终止支持意味着不再提供安全更新、非安全更新、免费或付费的协助支持选项或联机技术内容更新。

安全相关

2016.1.1 之后不再签发SHA-1证书,证书到期后,xp用户(包含xp ie8)访问将安全alert

The new policy will no longer allow root certificate authorities to issue X.509 certificates using the SHA-1 hashing algorithm for the purposes of SSL and code signing after January 1, 2016

上线计划

目前天猫首页已经在页面顶部对IE8的用户进行了即将不支持的提示。

在双12结束之后,将开始部署IE8覆盖全屏的浮层进行用户引导,浮层也将不能关闭。由于天猫页面&系统繁多,确认各个具体业务的影响及进行业务部署将花费较长的一段时间。

目前除了IE8之外,我们在IE9/10上也放了建议用户升级浏览器的提示。接下来也期待一下IE9/10成为历史的那一天。

最后

作为前端,提供用户更好的体验的手段不仅仅是提升页面性能,能够引导用户,推动用户选择更合适的访问终端,也是重要的方式之一。

如果你看了这篇文章,对加入天猫前端团队有意向的,可以发简历到join-tmallfe@list.alibaba-inc.com,招聘要求见:https://job.alibaba.com/zhaopin/position_detail.htm?positionId=3504

wssgcg1213 commented 7 years ago

👍 赞 继React 15 不支持IE8之后,抛弃古代浏览器已经快要成为事实标准

think2011 commented 7 years ago

啊啊啊啊啊!!

On December 1, 2016 at 15:47:58, ZeroLing (notifications@github.com) wrote:

👍 赞 继React 15 不支持IE8之后,抛弃古代浏览器已经快要成为事实标准

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

benjycui commented 7 years ago

IE9 的市场占有率更小,是不是一并不支持了?这样 flex 布局也可以用起来了。 http://caniuse.com/#search=flex

hezhirong commented 7 years ago

必须来给个赞

maisui99 commented 7 years ago

@benjycui 微软官方还在支持,且支持IE9目前还不算是一个问题,所以目前还暂不考虑,占有率是一个判断条件哈。

llearn commented 7 years ago

可以的!

wssgcg1213 commented 7 years ago

@benjycui IE9的占有率低从何而来?Win7默认安装的就是IE9,所以猜测用户量不低

jonirrings commented 7 years ago

大家一起来加油,抛弃旧浏览器兼容,造福所有前端同行。

fr11dom commented 7 years ago

ziluo commented 7 years ago

赞 +1

tyn520215 commented 7 years ago

赞 +1

cshenger commented 7 years ago

赞 +1,中国的市场需要大家一起努力培养

SMbey0nd commented 7 years ago

赞 +2

gxcsoccer commented 7 years ago

赞赞赞

benjycui commented 7 years ago

@wssgcg1213 http://tongji.baidu.cn/data/browser

classicemi commented 7 years ago

这个厉害,放这种升级提醒虽然是造福前端,但有可能对收入业绩这些有影响,有时上面的领导未必会同意,毕竟他不一定能感受到前端的疾苦,值得点赞👍

ttop5 commented 7 years ago

以后拒绝适配ie8又多了一个理由 :smile:

maisui99 commented 7 years ago

@classicemi 还是要看各个公司自己的情况,都是一个综合判断的结果。

ervinewell commented 7 years ago

趁这个机会,干脆ie都不支持了吧!!!

fegg commented 7 years ago

UC 也不要啊~

nodejh commented 7 years ago

赞👍

0fan commented 7 years ago

我网上下的window安装包默认的都是IE8啊,话说我之前还在做兼容IE6的网页,BUG调试的真是想死

TechQuery commented 7 years ago

@fegg UC 在国内 Web 浏览器行业 还是数得着的 —— http://www.uc.cn/business/developer/

TechQuery commented 7 years ago

@0fan 请认准 Win 7 SP1,自带 IE 9~

jovey-zheng commented 7 years ago

推动着发展,这是必须的。赞 :+1:

codering commented 7 years ago

我这就去报告领导: 你看淘宝都不支持IE8了!

slj20 commented 7 years ago

大势所趋

izee commented 7 years ago

干得漂亮,早就应该带头干IE了

kujian commented 7 years ago

Clarence-pan commented 7 years ago

必须要赞~

Shijiuwei commented 7 years ago

必须点赞

2016年12月27日 11:31,"Clarence Pan" notifications@github.com写道:

必须要赞~

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/tmallfe/tmallfe.github.io/issues/40#issuecomment-269264442, or mute the thread https://github.com/notifications/unsubscribe-auth/AAgKeCvLe6cMjlK9Mnyo0msg9nxsecuYks5rMIaCgaJpZM4LBFT4 .

gnipbao commented 6 years ago

fuckIE