IE讓我首次遭受了社會的毒打

  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 致敬,雖然它有種種不是,但不可否認,它的存在,推動了整個時代的進步。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章