正在閱讀:

四大瀏覽器巨頭聯(lián)手,兼容性終于不再是問題

掃一掃下載界面新聞APP

四大瀏覽器巨頭聯(lián)手,兼容性終于不再是問題

簡單來說,就是Chromium生態(tài)在事實上已經(jīng)壟斷了瀏覽器市場,只需要4家廠商就可以制定瀏覽器的事實標準了。

文|三易生活

在智能手機成為當下最為主要的個人終端設備時,盡管大家已經(jīng)越來越習慣于使用APP,但瀏覽器作為曾經(jīng)帶領用戶接觸互聯(lián)網(wǎng)世界的窗口,也依然還在繼續(xù)發(fā)光發(fā)熱。日前,谷歌、微軟、蘋果和Mozilla基金會共同宣布。將努力提高瀏覽器的互操作性,以確保Chrome、Edge、Safari和Firefox帶來同樣可靠和一致的Web體驗,為此推出了被稱為Interop 2022的互操作性標準。

據(jù)悉,Interop 2022是一個為Web開發(fā)者服務的通用測試標準,其將以“瀏覽器引擎在15個重點領域和3個聯(lián)合調(diào)查中的表現(xiàn)”為不同瀏覽器提供評分,分別為CSS層疊層、色彩空間和功能、C對話框元素、CSS子網(wǎng)格、排版和編碼、滾動條控件、表單控件等。目前,這四方也公布了各自旗下Chrome、Edge、Safari和Firefox的一致性進展,以及具體的兼容性成績。

蘋果方面在WebKit的開發(fā)者博客中透露,“Interop 2022是一個不斷發(fā)展的指標,由一組自動化測試生成,旨在評估對某些對Web開發(fā)人員最重要的Web標準的支持。Interop 2022將全年不斷更新,顯示瀏覽器工程師修復錯誤、實施新功能和改進測試的進展”。由此不難發(fā)現(xiàn),目前的主流瀏覽器在兼容性問題“折磨”了開發(fā)者與用戶二十年余年后終于達成一致,要坐下來解決問題了。

“可靠和一致的Web體驗”,其實指的是瀏覽器之間互相不兼容的現(xiàn)象。相信大家或多或少都用過360、搜狗、QQ等瀏覽器,并且這些產(chǎn)品基本都是在IE 6于2006年被評為“有史以來第八糟糕科技產(chǎn)品”后,一到兩年內(nèi)誕生的。而這一批瀏覽器在宣傳推廣時所打出的一個共同的口號就是“雙核瀏覽器”,通常都主打的是兼容IE與Chrome內(nèi)核,可面對老的Web應用使用IE內(nèi)核,面向新的網(wǎng)頁則使用Chrome內(nèi)核。

相信很多朋友在使用瀏覽器時,多少都遇到過各式各樣的兼容性問題。比如說,某個網(wǎng)頁在IE上是一個顏色,在Chrome上就變?yōu)榱肆硪粋€顏色,或是網(wǎng)頁的比例發(fā)生了變化;又或者說,許多學生朋友可能在填報志愿時,就遇到過網(wǎng)站上出現(xiàn)“瀏覽器不兼容,請使用IE11/IE10/IE9瀏覽器訪問”的提示。

而所謂的瀏覽器兼容性問題,是指因為不同瀏覽器對同一段代碼有著不同的解析,所造成頁面顯示效果不統(tǒng)一的情況。為此,解決瀏覽器兼容,也成為了跨瀏覽器開發(fā)的一個核心問題。而Web瀏覽器的架構,可以實現(xiàn)為一個進程包含多個線程,也可以實現(xiàn)為很多進程包含少數(shù)線程通過IPC通信。但如何做一款瀏覽器,卻并沒有統(tǒng)一的標準。

這一切的根源,其實是在互聯(lián)網(wǎng)早期,也就是上世紀90年代主導瀏覽器市場的微軟,與負責web技術標準的W3C組織并不是一條心、雙方各自奉行不同的標準所致。要知道,在新興市場形成的早期通常都是建立標準的最佳時機,但當時最終的結果卻是微軟憑借著Windows的超高市占率,讓IE的標準成為了用戶的事實標準。

由于當初微軟放棄了進入W3C,導致這一組織在Web技術標準上空有權威性、卻基本不存在強制力,而2004年誕生的WHATWG(網(wǎng)頁超文本技術工作小組),也更是讓W3C的權威性大損。早在2004年時,W3C試圖拋棄HTML轉(zhuǎn)向XHTML,導致了蘋果、Opera、Mozilla的不滿,三家甩開W3C建立WHATWG開發(fā)了Web Applications 1.0,也就是現(xiàn)在的HTML 5。

雖然到了2007年W3C接納了WHATWG,并同時將HTML 5作為Web技術的新標準,但W3C也就此失去了制定“標準瀏覽器”的能力。

當初微軟不加入W3C,使得后者不采用IE的方案,而在IE掉隊,Chrome與Firefox崛起后,已經(jīng)有大量開發(fā)者基于IE標準開發(fā)了大量的Web產(chǎn)品,讓瀏覽器不得不用兼容模式來解決這一問題。再加上不同瀏覽器采用的內(nèi)核不同,由于缺乏統(tǒng)一的開發(fā)標準,以及各大瀏覽器廠商為了凸顯產(chǎn)品的特色,更是使得整個瀏覽器行業(yè)出現(xiàn)了百花齊放的狀態(tài)。

在過去很長的一段時間里,跨瀏覽器開發(fā)、并解決瀏覽器的兼容問題,成為了前端開發(fā)者最為頭疼卻必須要解決的問題。而他們所要面臨的問題,就是開發(fā)者的代碼運行環(huán)境本身并不掌控在自己手中(服務器端)、而是在客戶端(用戶的瀏覽器),因此也不得不盡一切可能去協(xié)調(diào)各式各樣的瀏覽器。

眾所周知,在PC互聯(lián)網(wǎng)時代,瀏覽器市場有四大內(nèi)核,即微軟IE瀏覽器的Trident內(nèi)核、蘋果Safari和谷歌Chrome的Webkit內(nèi)核、Firefox瀏覽器的Gecko內(nèi)核,以及Opera瀏覽器的Presto內(nèi)核。不同內(nèi)核代表著瀏覽器的渲染引擎不同,而渲染引擎又是負責取得網(wǎng)頁內(nèi)容(HTML、XML、圖像)、整理信息(加入CSS樣式等),以及計算網(wǎng)頁顯示方式,然后輸出至顯示設備的關鍵。

不同瀏覽器內(nèi)核不同的情況下,渲染邏輯自然也就不一樣,就會導致同一份代碼有的瀏覽器顯示的正常、有的就不正常。例如,不同瀏覽器對HTM標記所具有的內(nèi)外邊距屬性就有著不同的定義,對同一個網(wǎng)頁元素重復設置多種樣式時、處理優(yōu)先級不一樣,圖片的位置設置在不同瀏覽器中顯示效果不同等等,都是極為常見的。

目前,業(yè)界最主流的解決方案是“css hack”,而css (層疊樣式表)則是用來表現(xiàn)HTML或XML等文件樣式的計算機語言,是控制網(wǎng)站樣式和布局的關鍵,也就是大家在瀏覽器上看到的網(wǎng)頁顯示效果,其實就是由css負責。由于不同廠商瀏覽器或某瀏覽器的不同版本對css的支持、解析不一樣,就要求開發(fā)者來編寫相應的css code。簡單來說就是大力出奇跡,用因地制宜來解決問題。

css hack將壓力拋給了開發(fā)者,為此部分開發(fā)者會在網(wǎng)頁上設置瀏覽器檢測,針對某些(IE)瀏覽器甚至直接拒絕服務,以至于沒有兼容模式的Edge(Trident內(nèi)核)在遇到網(wǎng)頁檢測瀏覽器時,干脆就聲稱自己是Chrome。顯然這不是一個完美的解決方案,但奈何W3C組織不給力、瀏覽器廠商又各有各的算盤,所以解決瀏覽器之間的兼容性問題也就被束之高閣了。

那么,為什么在移動互聯(lián)網(wǎng)時代、APP已經(jīng)動搖了瀏覽器市場地位的當下,谷歌、微軟、蘋果和Mozilla又要攜手來解決這一問題呢?

其實這是因為導致瀏覽器兼容性問題的歷史包袱,現(xiàn)在已經(jīng)不存在了。微軟的IE11以及Edge已經(jīng)徹底“壽終正寢”了,同時Mozilla的Firefox市場份額已不到4%,Opera瀏覽器更是放棄了自己的Presto內(nèi)核、改用Webkit內(nèi)核,并且Webkit內(nèi)核也基本上已經(jīng)一統(tǒng)整個市場了。至于說,谷歌與Opera合力研發(fā)的Blink內(nèi)核,則是Webkit內(nèi)核的硬分叉產(chǎn)物,兩者擁有同一個源流。

換句話來說就是,當初瀏覽器兼容性問題的出現(xiàn),是因為瀏覽器廠商太多、瀏覽器內(nèi)核太多,各家的標準讓開發(fā)者無所適從。但現(xiàn)在隨著微軟Edge加入谷歌的Chromium生態(tài)、Firefox式微,以及蘋果Safari圈地自萌,開放的生態(tài)讓Chromium的標準成為了全球開發(fā)者都在遵循的行業(yè)標準。

簡單來說,就是Chromium生態(tài)在事實上已經(jīng)壟斷了瀏覽器市場,只需要4家廠商就可以制定瀏覽器的事實標準了。

本文為轉(zhuǎn)載內(nèi)容,授權事宜請聯(lián)系原著作權人。

評論

暫無評論哦,快來評價一下吧!

下載界面新聞

微信公眾號

微博

四大瀏覽器巨頭聯(lián)手,兼容性終于不再是問題

簡單來說,就是Chromium生態(tài)在事實上已經(jīng)壟斷了瀏覽器市場,只需要4家廠商就可以制定瀏覽器的事實標準了。

文|三易生活

在智能手機成為當下最為主要的個人終端設備時,盡管大家已經(jīng)越來越習慣于使用APP,但瀏覽器作為曾經(jīng)帶領用戶接觸互聯(lián)網(wǎng)世界的窗口,也依然還在繼續(xù)發(fā)光發(fā)熱。日前,谷歌、微軟、蘋果和Mozilla基金會共同宣布。將努力提高瀏覽器的互操作性,以確保Chrome、Edge、Safari和Firefox帶來同樣可靠和一致的Web體驗,為此推出了被稱為Interop 2022的互操作性標準。

據(jù)悉,Interop 2022是一個為Web開發(fā)者服務的通用測試標準,其將以“瀏覽器引擎在15個重點領域和3個聯(lián)合調(diào)查中的表現(xiàn)”為不同瀏覽器提供評分,分別為CSS層疊層、色彩空間和功能、C對話框元素、CSS子網(wǎng)格、排版和編碼、滾動條控件、表單控件等。目前,這四方也公布了各自旗下Chrome、Edge、Safari和Firefox的一致性進展,以及具體的兼容性成績。

蘋果方面在WebKit的開發(fā)者博客中透露,“Interop 2022是一個不斷發(fā)展的指標,由一組自動化測試生成,旨在評估對某些對Web開發(fā)人員最重要的Web標準的支持。Interop 2022將全年不斷更新,顯示瀏覽器工程師修復錯誤、實施新功能和改進測試的進展”。由此不難發(fā)現(xiàn),目前的主流瀏覽器在兼容性問題“折磨”了開發(fā)者與用戶二十年余年后終于達成一致,要坐下來解決問題了。

“可靠和一致的Web體驗”,其實指的是瀏覽器之間互相不兼容的現(xiàn)象。相信大家或多或少都用過360、搜狗、QQ等瀏覽器,并且這些產(chǎn)品基本都是在IE 6于2006年被評為“有史以來第八糟糕科技產(chǎn)品”后,一到兩年內(nèi)誕生的。而這一批瀏覽器在宣傳推廣時所打出的一個共同的口號就是“雙核瀏覽器”,通常都主打的是兼容IE與Chrome內(nèi)核,可面對老的Web應用使用IE內(nèi)核,面向新的網(wǎng)頁則使用Chrome內(nèi)核。

相信很多朋友在使用瀏覽器時,多少都遇到過各式各樣的兼容性問題。比如說,某個網(wǎng)頁在IE上是一個顏色,在Chrome上就變?yōu)榱肆硪粋€顏色,或是網(wǎng)頁的比例發(fā)生了變化;又或者說,許多學生朋友可能在填報志愿時,就遇到過網(wǎng)站上出現(xiàn)“瀏覽器不兼容,請使用IE11/IE10/IE9瀏覽器訪問”的提示。

而所謂的瀏覽器兼容性問題,是指因為不同瀏覽器對同一段代碼有著不同的解析,所造成頁面顯示效果不統(tǒng)一的情況。為此,解決瀏覽器兼容,也成為了跨瀏覽器開發(fā)的一個核心問題。而Web瀏覽器的架構,可以實現(xiàn)為一個進程包含多個線程,也可以實現(xiàn)為很多進程包含少數(shù)線程通過IPC通信。但如何做一款瀏覽器,卻并沒有統(tǒng)一的標準。

這一切的根源,其實是在互聯(lián)網(wǎng)早期,也就是上世紀90年代主導瀏覽器市場的微軟,與負責web技術標準的W3C組織并不是一條心、雙方各自奉行不同的標準所致。要知道,在新興市場形成的早期通常都是建立標準的最佳時機,但當時最終的結果卻是微軟憑借著Windows的超高市占率,讓IE的標準成為了用戶的事實標準。

由于當初微軟放棄了進入W3C,導致這一組織在Web技術標準上空有權威性、卻基本不存在強制力,而2004年誕生的WHATWG(網(wǎng)頁超文本技術工作小組),也更是讓W3C的權威性大損。早在2004年時,W3C試圖拋棄HTML轉(zhuǎn)向XHTML,導致了蘋果、Opera、Mozilla的不滿,三家甩開W3C建立WHATWG開發(fā)了Web Applications 1.0,也就是現(xiàn)在的HTML 5。

雖然到了2007年W3C接納了WHATWG,并同時將HTML 5作為Web技術的新標準,但W3C也就此失去了制定“標準瀏覽器”的能力。

當初微軟不加入W3C,使得后者不采用IE的方案,而在IE掉隊,Chrome與Firefox崛起后,已經(jīng)有大量開發(fā)者基于IE標準開發(fā)了大量的Web產(chǎn)品,讓瀏覽器不得不用兼容模式來解決這一問題。再加上不同瀏覽器采用的內(nèi)核不同,由于缺乏統(tǒng)一的開發(fā)標準,以及各大瀏覽器廠商為了凸顯產(chǎn)品的特色,更是使得整個瀏覽器行業(yè)出現(xiàn)了百花齊放的狀態(tài)。

在過去很長的一段時間里,跨瀏覽器開發(fā)、并解決瀏覽器的兼容問題,成為了前端開發(fā)者最為頭疼卻必須要解決的問題。而他們所要面臨的問題,就是開發(fā)者的代碼運行環(huán)境本身并不掌控在自己手中(服務器端)、而是在客戶端(用戶的瀏覽器),因此也不得不盡一切可能去協(xié)調(diào)各式各樣的瀏覽器。

眾所周知,在PC互聯(lián)網(wǎng)時代,瀏覽器市場有四大內(nèi)核,即微軟IE瀏覽器的Trident內(nèi)核、蘋果Safari和谷歌Chrome的Webkit內(nèi)核、Firefox瀏覽器的Gecko內(nèi)核,以及Opera瀏覽器的Presto內(nèi)核。不同內(nèi)核代表著瀏覽器的渲染引擎不同,而渲染引擎又是負責取得網(wǎng)頁內(nèi)容(HTML、XML、圖像)、整理信息(加入CSS樣式等),以及計算網(wǎng)頁顯示方式,然后輸出至顯示設備的關鍵。

不同瀏覽器內(nèi)核不同的情況下,渲染邏輯自然也就不一樣,就會導致同一份代碼有的瀏覽器顯示的正常、有的就不正常。例如,不同瀏覽器對HTM標記所具有的內(nèi)外邊距屬性就有著不同的定義,對同一個網(wǎng)頁元素重復設置多種樣式時、處理優(yōu)先級不一樣,圖片的位置設置在不同瀏覽器中顯示效果不同等等,都是極為常見的。

目前,業(yè)界最主流的解決方案是“css hack”,而css (層疊樣式表)則是用來表現(xiàn)HTML或XML等文件樣式的計算機語言,是控制網(wǎng)站樣式和布局的關鍵,也就是大家在瀏覽器上看到的網(wǎng)頁顯示效果,其實就是由css負責。由于不同廠商瀏覽器或某瀏覽器的不同版本對css的支持、解析不一樣,就要求開發(fā)者來編寫相應的css code。簡單來說就是大力出奇跡,用因地制宜來解決問題。

css hack將壓力拋給了開發(fā)者,為此部分開發(fā)者會在網(wǎng)頁上設置瀏覽器檢測,針對某些(IE)瀏覽器甚至直接拒絕服務,以至于沒有兼容模式的Edge(Trident內(nèi)核)在遇到網(wǎng)頁檢測瀏覽器時,干脆就聲稱自己是Chrome。顯然這不是一個完美的解決方案,但奈何W3C組織不給力、瀏覽器廠商又各有各的算盤,所以解決瀏覽器之間的兼容性問題也就被束之高閣了。

那么,為什么在移動互聯(lián)網(wǎng)時代、APP已經(jīng)動搖了瀏覽器市場地位的當下,谷歌、微軟、蘋果和Mozilla又要攜手來解決這一問題呢?

其實這是因為導致瀏覽器兼容性問題的歷史包袱,現(xiàn)在已經(jīng)不存在了。微軟的IE11以及Edge已經(jīng)徹底“壽終正寢”了,同時Mozilla的Firefox市場份額已不到4%,Opera瀏覽器更是放棄了自己的Presto內(nèi)核、改用Webkit內(nèi)核,并且Webkit內(nèi)核也基本上已經(jīng)一統(tǒng)整個市場了。至于說,谷歌與Opera合力研發(fā)的Blink內(nèi)核,則是Webkit內(nèi)核的硬分叉產(chǎn)物,兩者擁有同一個源流。

換句話來說就是,當初瀏覽器兼容性問題的出現(xiàn),是因為瀏覽器廠商太多、瀏覽器內(nèi)核太多,各家的標準讓開發(fā)者無所適從。但現(xiàn)在隨著微軟Edge加入谷歌的Chromium生態(tài)、Firefox式微,以及蘋果Safari圈地自萌,開放的生態(tài)讓Chromium的標準成為了全球開發(fā)者都在遵循的行業(yè)標準。

簡單來說,就是Chromium生態(tài)在事實上已經(jīng)壟斷了瀏覽器市場,只需要4家廠商就可以制定瀏覽器的事實標準了。

本文為轉(zhuǎn)載內(nèi)容,授權事宜請聯(lián)系原著作權人。