Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

天猫即将不支持IE8 #40

Open
maisui99 opened this issue Dec 1, 2016 · 32 comments
Open

天猫即将不支持IE8 #40

maisui99 opened this issue Dec 1, 2016 · 32 comments

Comments

@maisui99
Copy link
Contributor

maisui99 commented Dec 1, 2016

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成为历史的那一天。

最后

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

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

@wssgcg1213
Copy link

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

@think2011
Copy link

think2011 commented Dec 1, 2016 via email

@benjycui
Copy link

benjycui commented Dec 1, 2016

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

@hezhirong
Copy link

必须来给个赞

@maisui99
Copy link
Contributor Author

maisui99 commented Dec 1, 2016

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

@llearn
Copy link

llearn commented Dec 1, 2016

可以的!

@wssgcg1213
Copy link

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

@jonirrings
Copy link

jonirrings commented Dec 1, 2016

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

@fr11dom
Copy link

fr11dom commented Dec 1, 2016

@ziluo
Copy link

ziluo commented Dec 1, 2016

赞 +1

1 similar comment
@tyn520215
Copy link

赞 +1

@cshenger
Copy link

cshenger commented Dec 1, 2016

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

@SMbey0nd
Copy link

SMbey0nd commented Dec 1, 2016

赞 +2

@gxcsoccer
Copy link

赞赞赞

@benjycui
Copy link

benjycui commented Dec 1, 2016

@classicemi
Copy link

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

@ttop5
Copy link

ttop5 commented Dec 1, 2016

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

@maisui99
Copy link
Contributor Author

maisui99 commented Dec 1, 2016

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

@ervinewell
Copy link

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

@fegg
Copy link

fegg commented Dec 1, 2016

UC 也不要啊~

@nodejh
Copy link

nodejh commented Dec 1, 2016

赞👍

@0fan
Copy link

0fan commented Dec 1, 2016

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

@TechQuery
Copy link

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

@TechQuery
Copy link

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

@jovey-zheng
Copy link

推动着发展,这是必须的。赞 👍

@codering
Copy link

codering commented Dec 1, 2016

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

@slj20
Copy link

slj20 commented Dec 2, 2016

大势所趋

@izee
Copy link

izee commented Dec 7, 2016

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

@kujian
Copy link

kujian commented Dec 21, 2016

@Clarence-pan
Copy link

必须要赞~

@Shijiuwei
Copy link

Shijiuwei commented Dec 28, 2016 via email

@gnipbao
Copy link

gnipbao commented Nov 15, 2017

fuckIE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests