2022年6月15日,微软终止对IE的支持,自此IE走入历史,可以说这是一个时代的终结。

  

  自己在 2011 年刚从业时,IE 在国内的市场占有率可是遥遥领先的,下图来自于 StatCounter 网站的统计结果。

  

  将浏览器版本再细分,排在前面的也是 IE 的四个版本,其中 IE6 的占有率最高,兼容各个版本的 IE 是当时前端的噩梦。

  

  当时开发 PC 页面,一般需要兼容的最低版本是 IE6,过了几年后,最低版本升到了 IE8。

  兼容 IE6 会让人很痛苦,当年没少遭毒打。

一、IE的体验问题

  IE 的体验问题主要从开发和使用者的角度来阐述。

1)操作系统的捆绑

  1995 年发生了第一轮浏览器大战,微软血拼网景,最后微软凭借操作系统与 IE 的捆绑,笑到了最后。

  而这恰恰是它的第一个问题,因为操作系统中只能存在一个版本的 IE,所以要调试其他版本就比较麻烦。

  当时常用的解决手段有多种,最直接的是物理扩展,多备几台电脑,安装不同的版本调试即可。

  另外一种手段是安装 IETester,如下图所示,在图中有多个版本的选项。

  但是在真正研发时,会发现 IETester 与真实浏览器还是有差别的,尤其是脚本方面。

  

  还有一种是软件扩展,就是下载虚拟机,然后安装合适的 windows 操作系统。

2)调试控制台

  2001 年 IE6 面世,下一代版本直到 2005 年才推出,IE6 也成为该系列产品中生命周期最长的一个版本。

  2002 年,IE 市场份额更是达到了惊人的 96%,即使到了 2011 年,仍然达到了 37.81% 的市场占有率。

  自己在2010年接触到了 Firefox,其中的插件 Firebug 一下子惊艳到了我,原来还能在线上直接修改网页。

  

  非常遗憾的是,当时的 IE6 并没有配套调试控制台,直到 IE8 才有了这个功能。

  在 IE6 中调试页面就会比较曲折,修改源码,手动刷新浏览器,当时也没有工具能自动刷新浏览器。

3)W3C规范

  IE的很多功能都不会按 W3C 规范来实现,这就会导致在 Chrome、Firefox 等现代浏览器中表现正常,放到 IE 中,就会发生异常。

  主要以 IE6 的问题为例,第一个是脚本问题,Ajax 通信在 IE6 中就要做兼容处理,如下所示。

if (window.XMLHttpRequest) {
//Firefox、 Opera、 IE7 和其它浏览器使用本地 JavaScript 对象
var request = new XMLHttpRequest();
} else {
//IE 5 和 IE 6 使用 ActiveX 控件
var request = new ActiveXObject("Microsoft.XMLHTTP");
}

  当年 jQuery 那么受追捧,解决的一大痛点就是IE的兼容处理,抹平了浏览器之间的差异。

  第二个是 png 透明图片,在 IE6 中,显示 png 会有一层底色,常用的是在 CSS 中添加 filter 属性。

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='bac.png'); /* IE6 */

  第三个是 CSS 样式,在 IE6 中没有圆角、阴影等 CSS3 属性,一般只能通过图片来实现。

  这非常阻碍 CSS 的发展,已经遇到过好多次,在其他浏览器中实现了惊艳的界面效果,但无法移植到 IE6 中。

  为了解决浏览器的兼容性问题(尤其是 IE),当时就出现了渐进增强和优雅降级两种思想。

  

4)安全性

  2004 年读高中时家里通网了,使用 IE6 上网,有时候莫名其妙就下载了垃圾软件。

  还会访问流氓网页,就是不断地弹框,越关越多,当时非常愤怒。

  于是在高三时特地选了计算机专业,就是为了能方便地修电脑,不过在开学时才发现与自己的预期不同。

  针对 IE6 的安全性问题,国内涌现了一批套壳的浏览器,例如 Maxthon、360、QQ等。

  除了安全之外,这些浏览器还提供了标签功能,打开一个网页不用再重开一次软件了,当时我被惊艳到了。

  还有无痕浏览功能,增强了隐私保护。  

二、巨人的落幕

  IE 曾经无比辉煌,但是在 Firefox、Chrome 等现代浏览器的冲击下。

  桌面端的市场份额在不断的被蚕食,从 96% 跌至 1.65%(截止至2022年5月)。

  2008 年 Chrome 发布,4 年后就与 IE 的占有率差不多并驾齐驱。

  在 2013 年,全球市场中 Chrome 首次超越 IE,2014 年,国内市场中 Chrome 也超越了 IE。

  下图来自于 StatCounter 的统计,蓝线是 IE,绿线是 Chrome,前者不断下降,后者不断上升,两极分化很明显。

  

  IE 持续败退的原因有很多,此处就列举其中的几个。

1)移动浪潮

  人们日常上网的方式正从 PC 转为移动端,无论是购物还是娱乐,端着手机就能完成。

  下图摘录自 StatCounter,在 2022 年 1 月至 6 月的浏览器中占有率最高的两个排名都来自于移动端。

  

  这个排名也得益于 Android 和 iOS 的成功,而反观微软推出的 Windows Phone 早在 2017 年 7 月就已歇菜。

  移动战略的失败,也让 IE 在移动端举步艰难。

2)自身缺陷

  第一个是更新缓慢,这就导致功能改进不及时,难以创新,并且会延长安全漏洞的修复时间。

  第二个是 W3C 标准的支持度不够,在开发人员中的口碑极差,总是要单独做适配。

  第三个是未提供强大的扩展系统,无法满足一些特定的自定义功能。

  第四个是在浏览网页时速度慢,加载慢,响应不及时。

  当然,微软从 IE8 开始也在努力改善使用体验,例如注重对 W3C 规范的支持、提升浏览器安全性等。

  但是 IE 的积弊使其在步伐上显得迟缓而无力,官方显然也意识到了这个问题。

  在 2015 年发布新浏览器 Microsoft Edge,替代 IE 成为 Windows 10 的默认浏览器,也算是为 IE 敲响了丧钟。

  上述是我能想到的问题,若有不同观点,欢迎在评论区补充。

  最后,还是要像 IE 致敬,虽然它有种种不是,但不可否认,它的存在,推动了整个时代的进步。

IE让我首次遭受了社会的毒打的更多相关文章

  1. try-catch-finally中的4个大坑,不小心就栽进去了!

    在 Java 语言中 try-catch-finally 看似简单,一副人畜无害的样子,但想要真正的"掌控"它,却并不是一件容易的事.别的不说,咱就拿 fianlly 来说吧,别看 ...

  2. 利用python进行数据分析—数据清洗记录3,map,apply,

      社会心态调查报告 导语: 时代决定心态,心态映照时代.社会心态产生于社会个体心理,又以整体的形态存在,进而影响着每个社会成员的社会价值取向和行为方式,影响着国家经济政治和社会发展大局.良好的社会心 ...

  3. 像追女神一样学好java~

    写在前面的话 ● 本文适合食用的观众大老爷和小建议: ----本文内容主要是围绕java这门语言展开~ 适合的食用的大老爷们: ★ 第一类:完全没学过其他编程语言入门java的小白 ★ 第二类:已经学 ...

  4. 面向对象设计与构造:oo课程总结

    面向对象设计与构造:OO课程总结 第一部分:UML单元架构设计 第一次作业 UML图 MyUmlInteraction类实现接口方法,ClassUnit和InterfaceUnit管理UML图中的类和 ...

  5. 退役记——CCC2020&CCO2020

    我叫吴佳诚,一个曾在福建师大附中就读的oier,2019年7月份我来到多伦多就读于Langstaff Secondary School 我的常用id有:Johnson_Wu,温词 竞赛经历: 2018 ...

  6. 18岁,赚到了人生中的第一个10W!

    大家好,我是九歌 今年我18岁,赚到了我人生中的第一个10W 截至2019年10月14日,我已经做了43天的公众号啦,粉丝也悄然增长到了1W8,感谢各位读者朋友给我的支持和鼓励. 相信大部分读者都是从 ...

  7. async,await执行流看不懂?看完这篇以后再也不会了

    昨天有朋友在公众号发消息说看不懂await,async执行流,其实看不懂太正常了,因为你没经过社会的毒打,没吃过牢饭就不知道自由有多重要,没生过病就不知道健康有多重要,没用过ContinueWith就 ...

  8. 利用c++中的设计灵感,既要学BIM分类信息表,借助GIS完成环境搭建改善

    我,一个平平无奇的城市规划专业(建筑专业.路桥专业)大学生,还有一年要毕业,很担心工作以后受到社会的毒打,遂问导师和学长,我要自学点什么技能和软件? 学长A:CAD,SketchUp,PS我都很熟练了 ...

  9. 大厂程序员因厌恶编程,辞去月薪2w+的工作去当司机?

    世界好小啊,刚在一个 UP 主的群里看到一个视频,标题叫做:"失业了工作没找到,却稀里糊涂上了知乎热搜,2000 多万人围观,我--" 说实话,看到视频的封面,我的下巴当时就掉到了 ...

随机推荐

  1. Java数组的常见算法2

    1. 求数值型数组中元素的最大值.最小值.平均值.总值等 2. 数组的复制.反转.查找(线性查找.二分法查找)

  2. PostgreSQL安装 报there has been an error.Error running

    直接用postgresql-11.2-1:https://get.enterprisedb.com/postgresql/postgresql-11.2-1-windows-x64.exe这个版本的安 ...

  3. SpringMVC 解析(五)URI链接处理

    URI在网络请求中必不可少,Spring提供了一些工具类用于解析或者生成URL,比如根据参数生成GET的URL等.本文会对Spring MVC中的URI工具进行介绍,本文主要参考Spring官方文档. ...

  4. 1.Markdown语法

    Markdown学习 一.标题:(# +标题名字) 标题 三级标题 四级标题 二.字体 (空格内容前后的空格删掉) Hello,World! **粗体** Hello,World! *斜体* Hell ...

  5. vue预渲染及其cdn配置

    VUE SEO方案一 - 预渲染及其cdn配置 项目接入VUE这样的框架后,看起来真是太漂亮了,奈何与MCV框架比起来,单页应用程序却满足不了SEO的业务需求,首屏渲染时间也是个问题.总不能白学VUE ...

  6. 1. charles安装配置与抓包详解

    Charles简介Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据.它允许一个开发 ...

  7. 攻防世界-MISC:pdf

    这是攻防世界新手练习区的第二题,题目如下: 点击附件1下载,打开后发现是一个pdf文件,里面只有一张图片 用WPS打开,没发现有什么不对的地方,参考一下WP,说是要转为word格式.随便找一个在线转换 ...

  8. XCTF练习题---MISC---hit-the-core

    XCTF练习题---MISC---hit-the-core flag:ALEXCTF{K33P_7H3_g00D_w0rk_up} 解题步骤: 1.观察题目,下载附件,发现是一个.core文件 2.打 ...

  9. Django-----cookie&session

    cookie 保存在用户浏览器端的一个键值对(别人给的凭证) 服务端可以向用户浏览器写cookie 客户端每次发请求会携带cookie去(放在请求头里面) 淘宝的cookie  京东的cookie(h ...

  10. postman4.15

    测开培训笔记4.15 postman:很主流的API测试工具,也是在工作中使用很广泛的研发工具 queue 队列 先进先出的原则 列如:客户端有100个请求 服务端最多只能承受90个 其余都要排队进行 ...