IE 永不死?微软开始将不兼容 IE 的网站自动重定向至 Edge

码农天地 -
IE 永不死?微软开始将不兼容 IE 的网站自动重定向至 Edge
前言

作为前端工程师最痛苦的事情无非就是要兼容 IE 了,但有一个令人匪夷所思的问题就是 IE 即使不更新也依然无法灰飞烟灭,由于我之前一直用的是 iMac ,所以不太了解 IE 的近况,以为它只存在于 Windows XP、Win7、Win8 中,随着这一批操作系统的淘汰 IE 也许就不会再出现在人们的视野中了。

2020 年疫情的原因,过完年一直在家办公了很长时间,一直在狭小的空间里待着会让人感到不适,所以我完成工作后打算玩玩游戏来舒缓一下心情,于是就买了一台 Windows 笔记本(大部分大家耳熟能详的游戏只有 Windows 能玩),万万没想到收到货后刚一开机就看到了无比熟悉的两个图标:

这让我感到非常的疑惑,微软既然已经有 Edge 了,为什么还要在 Windows 系统上捆绑这个 IE 呢?这都 Windows 10 了还把 IE 给放桌面上,是怕它被世人遗忘么?这么做的话猴年马月才能不考虑 IE 啊!

沉思

接下来我开始陷入了沉思:毕竟大部分人还是不太了解计算机的,桌面上如果有浏览器的话可能默认就直接点进去浏览网页了,非计算机专业的人可能也不知道 IE 到底有什么不好,反正不是都能浏览网页嘛!IE 这么方便又不用下载,也从来不提示我更新,不像某些国产浏览器一堆烦人的广告,就用 IE 了!

这就导致了在停止更新大版本的 IE 上,一些新特性将永远不会被支持,并且还没有合适的 polyfill ,比如 CSS 的 grid、JS 的 Proxy,随着各种框架的升级,这些新特性正在扮演着越来越重要的角色,比如 Vue 3、React 的 mobx、immer 等各种各样的库…但是为了兼容这部分一直使用 IE 的人,我们将永远也无法使用新技术!

那么接下来会发生什么?ES 再怎么迭代更新,ES10、11、12、13、14、15… 那又有什么意义呢?一些语法糖似的更新,可以使用 babel 来转换成 IE 能识别的代码,但同时也牺牲了网络传输的体积,因为语法糖可能就一句代码,转换出来可能就变成一百行代码了,比如我们最常用的 Promise,被 babel 转换成 polyfill 之后代码一下子多了好几十KB。

同时 ES 也不仅仅只更新语法糖,有一些特性必须要是 JavaScript 引擎级别的支持才能做到:比如 Proxy、Symbol 等,难道等我们三十来岁退休的时候也永远无法用上新技术吗?

可能有人会说,用不上新技术就不用呗,以前的前端开发工程师不也都干得好好的嘛,该实现的功能不都实现了?这么说是没错,但是现在产品可谓一年比一年复杂,以前用 jQuery 实现的网站,现在再让用户去访问,用户还会觉得这个网站好吗?又慢、功能又一般、样式也不好看、交互也不友好… 不信的话大家把今年产品经理给你提的需求记在小本本上,然后一两年后再拿出来看看,看看两年后的需求和两年前的需求差距有多大,需求不升级的情况下,当然可以一直用老技术啦!不然大家谁愿意学那么多花里胡哨的,直接什么 Node.js、npm、webpack 的都不用装,在编辑器生成个 html 页面,然后<script\>标签里引个 jQuery 一顿$,它不香吗?尤其是如今数据可视化需求的连年递增,SVG、Canvas、WebGL 这些技术怎么在 IE 上用?

我一直很不理解微软的做法,他自己都放弃了的东西,还要强迫消费者去用(说强迫是夸张了点,但将 IE 一直放在桌面的做法确实为它的永生提供了保障),Edge 后来改用了 Chromium 内核,和国产浏览器一样沦为了一个"皮肤"浏览器,但这依然令前端开发者感到开心,假如有一天我们真的团结起来了呢?我们将团结一致的勇敢对兼容 IE 说不!我们开发的项目将不考虑在 IE 上会运行成什么样,这样还在使用 IE 的用户会不会就此放弃了呢?

Edge 87

微软似乎也意识到了这个问题,许多现代网站的设计都与 IE 不兼容。所以当 IE 用户访问不兼容的站点时,他们会收到一条消息,提醒此站点与浏览器不兼容:

可能有的用户会因此而下载新的浏览器,但有一些用户可能略微年长或文化水平略低,导致此时并不知道该如何是好。

因此从 Edge 87 开始,当用户使用 IE 访问与其不兼容的站点时,将会被自动重定向至 Microsoft Edge。重定向至 Edge 时,浏览器会为用户显示一次性对话框。说明重定向的原因,并提示是否同意将浏览数据和设置从 IE 导入到 Edge,具体包括:收藏夹、密码、搜索引擎、打开的选项卡、历史记录、设置、Cookie 和主页。导入数据不是必选项,不勾选也可以继续下一步:

在用户以Edge浏览网页时,如果用户的默认浏览器是IE的话,那么Edge还会提醒用户把默认浏览器改为Edge。而除了面向普通用户的措施外,对于企业用户,微软也以电邮通知他们,表示从11月13日起,将不能在IE上登入微软账号。看起来微软似乎也有要抛弃 IE 的打算了,但是我觉得首要的第一步还是不要在新电脑上装 IE 了,装别人家浏览器肯定是不可能,但新版谷歌内核的 Edge 浏览器还是可以的。

假扮成不同的浏览器

前两天在公众号上看到:

Chromium 版 Edge 会根据所访问的站点模拟其他浏览器。这可能是出于兼容性原因。它会通过切换用户代理以伪装成其他浏览器,将自己显示为 Google Chrome,以便使用为该浏览器编码的网站功能。

启动 Edge 时,它会下载 JSON 配置文件。此文件的一部分—— EdgeDomainActions 部分 —— 告诉 Edge 访问某些网站时如何操作。例如,访问 Netflix.com 时,Edge 似乎是 Edge,但在访问 Facebook 时,它会切换用户代理并显示为 Chrome,如果网站在 Google Chrome 浏览器中运行得更好,这可以让它告诉网站它是谷歌浏览器。此功能还可能允许它在连接到视频流网站时伪装成原始 Microsoft Edge,以便利用 PlayRady 等 Microsoft DRM,这些都是 Chromium 浏览器通常不支持的。

底下一堆人评论:

360 双核浏览器既视感

这不是国内所谓双核浏览器玩了十几年的套路吗?

震惊!微软竟抄袭国内这家浏览器公司的双核技术!

说白了,不还是因为兼容性有问题的时候,程序通过 UA 判断是否是 Edge 做了特殊处理。换内核以后为了不出bug,不走这个判断呗

本文首发于公众号:前端学不动

特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

加个好友,技术交流

1628738909466805.jpg