今天,过了27年后,IE浏览器停用了

前言

随着Windows的官宣,ie浏览器将于6月16日正式退役。

https://www.microsoft.com/zh-cn/download/internet-explorer.aspx

012af1966d95166fe6a875bac9ec4db2.png

那个曾几何时的浏览器之王,经历一次又一次操作系统的迭代,直至新兴浏览器的出现后沦为浏览器鄙视链的最后一层,在叹息与嘲笑声中跌出神坛,经历了大起大落的二十年,终于要说再见了。

05db16bd72bf035409248ffa8c373d1d.png


历史的演进

1.少年被寄予厚望

1995年,微软正处于势不可挡的时期,而浏览器的市场主要来源于网景公司,一款名为导航者的浏览器一统天下。

为了拥有自己的浏览器,微软获购买了望远镜公司的Mosaic浏览器版权,在经过魔改后,微软也拥有了属于自己的浏览器,并取名为Internet Explorer此时它主要是被应用于大学和研究机构之间通过FTP实现文件共享。

几个月后,微软又发布了IE2,这个版本的IE才真正进入了人们的视野。它直接复制了导航者的一大部分功能,如导入书签,支持超文本标记语言特性等,迅速积累了第一批用户。为了实现大规模商用,在第二年IE3就接紧发布。抛弃了原先使用的Spyglass源代码,添加了一些新技术,支持ActiveX、和128位加密等。

微软的目的,是将IE打造成浏览器界的Windows。

2.第一次浏览器大战:登上王位

IE通过频繁增添新功能的方式迅速挖掘到了市场。但是和网景依然是你追我赶,始终没能拉开差距。

此时敏锐的微软借助操作系统上的核心竞争力,马上决定让IE成为Windows系统的默认浏览器也就是说,只要你使用了微软的操作系统,那么默认浏览器就是IE。

借助这种捆绑销售的方式,微软取得了巨大成功。仅又一年后的1997,微软就发布了IE4.0,此时它已经握有80%的市场占有率。

很多人觉得IE没有技术,其实在早期IE是有技术的,并且是当时绝对领先的技术。IE4.0采用了Trident渲染引擎,它能够借助代码让页面实时变化,也就是最早的动态页面,放在当时可以吊打一众浏览器。

通过先进的技术和背后的靠山,2003年,它的市场占有率达到了惊人的95%,年仅8岁的它,正式称王。为了迎合它,苹果甚至将macOS的默认浏览器都设置为IE。

不夸张地说,它垄断了当时Web浏览器市场。

3.毫无作为的5年

也是由于这种垄断地位,让微软觉得互联网似乎已经没有对手了。于是在IE6.0发布之后,微软就解散了研发团队。并且在之后的五年时间里面,都未正视过IE的维护和优化。它的技术依然停留在2003年,那个单进程模式。

随之降临的便是越来越多的问题,横飞的木马和漏洞,动不动就会卡死的网页,极慢的启动速度,以及让你随时可能奔溃的心态。

616265f052ceae1ad89f5e08162f6216.png


这五年,是IE技术和市场的停滞,但也是Web高速发展的时期。微软犯了傲慢的错误,却依然享受于作为老大占领市场的快感之中,对濒临城下的敌人选择视而不见。

于此同时,众多互联网公司借此机会打造自己的浏览器品牌。

4.新一次浏览器大战:神仙打架

时间来到了2008年,浏览器市场已经不再是微软一家独大了。挑战它的主要是三个:Safari,Opera和FireFox浏览器。

每一家浏览器都为了市场不断优化自身,Safari高雅大气,有着忠实的果粉支持;Opera便捷快速;火狐支持插件,功能众多。它们都已经奠定了用户基础。

IE浏览器的市场占有率下降到了40%。

尽管有所下降,微软依然乐观,坚定自身的操作系统优势可以确保王牌地位,甚至还与火狐浏览器在某一段时间成为了友商。

此时的它丝毫不知新的变革即将到来。

5.被迫放弃

同年,一款名叫Chrome的浏览器横空出世,搭载着WebKit内核,以安全、快速、高兼容性的三大特点迅速获得了人们的认可。

仅仅2年时间,便与IE、FireFox形成三足鼎立的局势。

但是谷歌并不为此感到满足,为了进一步扩大化自己的市场,更是放了个大招:将自己的Chromium项目开源。

所以Chrome背靠谷歌这个大靠山,走了和早期IE很像的路:积极扩大自身影响力,捆绑谷歌和Chrome。只不过这次年轻的谷歌没有选择轻视敌人,它迅速将Chrome推向那个曾经属于IE的王位。

此时的微软才彻底明白过来,敌人比自己想象的还要强大。

懵逼的同时微软接连推出了IE7、IE8,并且IE8也在技术上做了重大变革,从原来的单进程模式切换成了多进程。

2013年,微软做出了最后的针扎推出IE11,进一步优化界面,加速3D图形渲染,增加引擎核心数。但为时已晚,市场占有率依然持续下降,它古老的界面和差劲的性能伴随着表情包已经深入人心,并且Chrome已经真正成为了第一。

2015年,微软宣布正式放弃IE品牌,不再开发新版本的IE浏览器,搭载着自研EdgeHTML内核的Edge浏览器问世。

同年IE浏览器的市场份额降至2%,这款陪伴了年的IE浏览器,正式远离了我们。

为何走向淘汰

平庸的用户体验

如果你是早期的网上冲浪爱好者,那一定因为各种原因主动被动、亲身体验过它,点进去之后是一个较为简单和复古的页面,和其他主流浏览器形成了一个对比。甚至它的单调可能会让你觉得有点可爱,好像是微软在和你卖萌一样。

“都20xx年了,居然还有这种界面存在”?

96eaa538785fc5b8b6e07be22aece59e.png


以及可能在你工作的关键时刻突然卡着不动,然后响应以下内容:

519d711e205711083704410b9d063226.png


e850279d2580407cf86852c5dff0f3d8.png


对它最深刻的印象,除了差劲的体验感,还有就是来自网友的调侃:

4ae5d2bd170d47d3411a08ce342308f1.png

b796449e8c2387173edffc43f1bbdcee.png



市场的挑战和错误的商业判断

但是如果仅仅只是因为短暂的差评,至少借助Windows这个靠山,在拥有广大的用户群体面前,还是有可能快速挽回市场的。

其失败的根本原因在于微软的傲慢、对Web领域错误的商业决策上。而决策的错误也导致IE在Web崛起的黄金五年里毫无作为。

在2014年年初,微软公司CEO纳德拉表示,要将微软业务重心转移至云业务,并且不会延续对IE的研发。此时正是苹果Safari,谷歌Chrome和其他众多浏览器神仙打架的时候,为了发挥优势抢占市场甚至国内的360、百度等浏览器,都在技术和兼容性上下了一番功夫。

于是,在浏览器市场的争夺中失去了领先地位和核心竞争力,取而代之的Chrome浏览器登顶霸榜。

浏览器2022占全球桌面浏览器市场份额的百分比
Google Chrome77.03%
Safari8.87%
Mozilla Firefox7.69%
Microsoft Edge5.83%
Internet Explorer2.15%
Opera2.43%
QQ1.98%
Sogou Explorer1.76%
Yandex0.91%
Brave0.05%

那个熟悉的e字母图标,逐渐被人们抛弃。

浏览器背后的技术

内核引擎架构

浏览器界面是一个用户展示的结果,其核心技术体现是在于用户输入内容到页面响应,也就是「获取请求、响应数据、渲染页面」。而完成这一关键步骤的,是一个叫做浏览器内核的东西。

每个浏览器内核都大不相同,但是主体分为两个部分:渲染引擎(Rendering Engine)和JS引擎。渲染引擎更偏向于数据的导航和渲染,JS引擎就负责解析 Javascript 语言来实现网页的动态效果。

不同的浏览器、即使同一浏览器不同型号可能渲染引擎和JS引擎都不一样。当然不同的浏览器也可能使用相同的内核,IE浏览器的Trident,如国内的360极速浏览器、百度浏览器都在用它。

2c62a4ed384ea3a3bd6965eb22ee9399.png


现在我们最常用的谷歌Chrome浏览器,它的核心架构是这样的:

6dc842b9d438322e0e0ccb23bfaf2850.png

用户接口接收用户请求,通过网络向浏览器组件转发请求,渲染引擎以8kb为单位接收数据信息,做数据导航,再交给V8和libXML解析,最后逐步将内容显示给用户。

核心进程

早期的浏览器,都是单进程架构,所以功能也比较简单。

一个进程中有页面线程负责页面渲染和展示,Js线程执行JS代码。

由于是单进程的结构,所以会引发很多问题,比如线程卡死问题,一个线程卡死就可能造成整个浏览器的崩溃。

还有就是数据安全问题,不同tab之间在一个进程内是通过共享内存共享数据的,所以页面线程和JS线程都可以访问到对方的数据。

现代主流浏览器都是使用的多进程结构,并且每个进程的职责都大不相同,以最常用的Chrome为例,它拥有:

  • 一个浏览器主进程:用来响应Chrome浏览器的用户操作请求,包括地址栏、书签和各种按钮,并且也负责协调与其它进程交互工作。

  • 一个GPU进程:负责整个浏览器界面的渲染。

  • 一个网络进程:负责接收网络请求和转发请求。

  • 多个渲染进程:负责页面渲染、运行脚本、事件处理等。

  • 多个插件进程:负责控制处理网站使用的所有插件。

c63b159450060ab7ddc83b83a49c5f14.png


Chrome浏览器主要是使用以下四种进程模型:

  • Process-per-site-instance:默认情况下为用户访问网站的每个实例创建一个Renderer进程,这样可以确保来自不同站点的页面是独立呈现的,并且对同一站点的多次访问也是进程间彼此隔离的。简单来说就是访问不同站点和同一站点的不同页面都会创建新的进程。

  • Process-per-site:同一个站点使用同一进程。

  • Process-per-tab:一个tab里的所有站点使用一个进程。

  • single-process:让浏览器引擎和渲染引擎共用一个进程。

Chrome默认使用的是Process-per-site-instance。优点是多进程模式下速度快,并且因为tab和tab之间的信息都是相互隔离的,所以互不影响,实现安全隔离。缺点也非常明显,太!占!内!存!我目前开了两个浏览器页面,每个页面上有多个tab,这是目前电脑的内存占用情况:

8ba0df9d760974875a8646272237a2cc.png


是不是知道你电脑总是内存不足的原因了?

为了挽救市场,IE8之后浏览器也改为了多进程模式,性能提升了许多。但是此时Chrome、Safari已经基于多进程的成熟技术上展现最极致的用户体验了,极速渲染、高页面FPS和刷新率、自定义插件、开发者模式等功能都相应而出。

IE慢吗?本质上不算慢,只是别人越来越快。

翘首企足的Web世界

在新兴的Web时代,我们追求性能,追求体验,更兼容、更安全。

请不要忘记,曾经那个功能简单,风格复古,披着相似外衣停留在Windows桌面二十余年的IE。它贯穿了一个时代,一个日新月异的时代,一个充满竞争的时代,最终在前进的路程中败下阵来。

一粒破土而出的种子,是一颗参天大树的延续。

Edge作为它的「种子」,将代表微软走向下一个二十年。

6d9eda9b0c3ac32f08f47a7112820199.png


关于浏览器之间的竞争和迭代从未停止,作为广大用户群体的我们应期盼未来,拥抱新的改变。

下一个时代的王者是谁,Chrome么?它会被谁超越?

c19f1753d46bd56b2ede7bd48b2b3c23.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464004.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

boost库学习入门篇

学习及使用Boost库已经有一段时间了,Boost为我的日常开发中带来了极大的方便,也使得我越来越依赖于boost库了。但boost功能太多,每次使用还是得翻看以前的 资料,所以为了以后可以更方便的使用,在此对常用的功能作一个…

开源 STM32 USB-CAN项目

照理来说,USB-CAN这种东西应该已经被做的烂大街的工具,国内居然没有一个拿得出手的开源方案。某立功和PCAN动辄2000的价格也是离谱。淘宝上各种虚拟串口方案、替换dll兼容某立功软件的各种方案....价格都倒是便宜,性能和可靠性嘛.......就不多…

Go语言web框架 gin

Go语言web框架 GIN gin是go语言环境下的一个web框架, 它类似于Martini, 官方声称它比Martini有更好的性能, 比Martini快40倍, Ohhhh….看着不错的样子, 所以就想记录一下gin的学习. gin的github代码在这里: gin源码. gin的效率获得如此突飞猛进, 得益于另一个开源项目httproute…

8位ADC是256还是255?

昨天的文章发了之后,有朋友找到我,给我讨论了很多关于ADC细节。晚上给个朋友在51上调ADC0808芯片有一个朋友是做硬件的,他有从事过专业仪器设备,常年有使用ADC的经验,他给我的观点是,8位ADC对应的就是256。…

boost库在ubuntu下的安装

系统是ubuntu虚拟机,安装的是boost_1_60_0。 (1)首先去下载最新的boost代码包,网址www.boost.org。 (2)进入到自己的目录,解压: bzip2 -d boost_1_60_0.tar.bz2 tar xvf boost_1_…

所谓的0拷贝不就是为了让CPU休息吗?深入理解mmap

1.开场白环境:处理器架构:arm64内核源码:linux-5.11ubuntu版本:20.04.1代码阅读工具:vimctagscscope我们知道,linux系统中用户空间和内核空间是隔离的,用户空间程序不能随意的访问内核空间数据&…

boost::function的用法(一)

boost::function的用法 本片文章主要介绍boost::function的用法。 boost::function 就是一个函数的包装器(function wrapper),用来定义函数对象。 1. 介绍 Boost.Function 库包含了一个类族的函数对象的包装。它的概念很像广义上的回调函数。其有着和函数指针相同的…

nhibernate学习之集合组合依赖

1.学习目标还是学习compenent的用法,上节实现了简单字段的组合,这节中将讨论两个问题:1.依赖对象有一个指向容器对象的引用。2。集合依赖2.开发环境和必要准备开发环境为:windows 2003,Visual studio .Net 2005,Sql server 2005 developer ed…

追更这个做嵌入式的大佬

在知乎上看到一个做嵌入式91年小年轻,分享给大家在他看来,嵌入式也是一个很吃香的技术,在周末写这篇文章的时候,也刚收到一个朋友的微信消息,他说自己拿到了70多万的年包offer。大家想追更作者的原文,可以点…

CentOS6.5安装ElasticSearch6.2.3

CentOS6.5安装ElasticSearch6.2.3 1、Elastic 需要 Java 8 环境。(安装步骤:http://www.cnblogs.com/hunttown/p/5450463.html) 2、安装包下载: #官网地址 https://www.elastic.co/downloads/elasticsearch 3、新建用户 Elastic高…

这道字符串反转的题目,你能想到更好的方法吗?

周末有一个朋友问了一个笔试题目,当时还直播写了答案,但是总觉得写得不够好,现在把题目放出来。大家看看有没有什么更好的解法题目有一个字符串,如下,要求对字符串做反转后输出//input the sky is blue//output blue …

流媒体服务器搭建实例——可实现录音,录像功能

由于我也是刚开始接触这个东东,原理什么的不是很清楚,这里我就不说了,免得误人子弟,嘿嘿!第一步,下载FlashMediaServer3.5,网上有很多资源,这里就不提供了,大家google一下…

一个女孩子居然做了十年硬件。​。。

本文转自面包板社区。--正文--2011年,一个三本大学的电子信息专业的大三女学生跟2个通信专业的大二男生组成了一组代表学校参加2011年“瑞萨杯”全国大学生电子设计大赛,很意外的获得了湖北赛区省三等奖,虽然很意外,但还是挺高兴的…

之前字符串反转的题目

之前发的字符串反转的题目这道字符串反转的题目,你能想到更好的方法吗?有很多人评论了,有的人还写了自己的解题思路,还有人写了自己的代码还有其中呼声很高的压栈解法我相信很多人在笔试的时候一定会遇到这类题目,给你…

hdu 3488

可以作为KM 二分图最大权匹配模板 View Code #include <stdio.h>#include <iostream>#include <string.h>using namespace std;const int N210;const int inf0x2fffffff;const int Max20000;int match[N],n,m,lack,w[N][N],lx[N],ly[N];bool vx[N],vy[N];bo…

心情不好,我就这样写代码

在 GitHub 上有一个项目&#xff0c;它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写&#xff0c;这些准则将指导你写出最亮眼的烂代码。为了保持与原 GitHub 项目一致的风格&#xff0c;下文没有进行转换。读者们可以以相反的角度来理解所有观点&#xff0c;…

递归是会更秀strtok

前几天发的字符串反转题目&#xff0c;后面有一个新同学用了递归的方法来实现&#xff0c;看了下&#xff0c;真的是很秀。之前字符串反转的题目代码如下#include "stdio.h" #include "string.h" char input[] {"the sky is blue cris 1212321 apple…

ios开发网络篇—HTTP协议 - 转

一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) &#xff0c;通过1个URL&#xff0c;能找到互联网唯一的1个资源 &#xff0c;URL就是资源的地址&#xff0c;位置&#xff0c;互联网上的每个资源都有一个唯一的URL 2.URL中常见的协议 (1)HTTP&#…

总结的一些内存问题

前言之前在实习时&#xff0c;听了 OOM 的分享之后&#xff0c;就对 Linux 内核内存管理充满兴趣&#xff0c;但是这块知识非常庞大&#xff0c;没有一定积累&#xff0c;不敢写下&#xff0c;担心误人子弟&#xff0c;所以经过一个一段时间的积累&#xff0c;对内核内存有一定…

云计算-从基础到应用架构系列-云计算的演进

为什么80%的码农都做不了架构师&#xff1f;>>> 开篇 本篇是主要讲述云计算的发展历程&#xff0c;由于云计算本身提出来也不是太久&#xff0c;并且其实云计算也是经过前人的一些经验总结提出&#xff0c;所以我们对之前的一 些计算机的发展史有个一定的了解&…