關于主流瀏覽器內核的二三事

發現作為一個未來前端工程師,今天被問到瀏覽器內核的事情,竟然卡殼愣住了,所以以下的內容僅是初步對各大瀏覽器內核的調研。有不對的地方,請各位大佬指正。

瀏覽器內核是一個瀏覽器的核心部分,英文名字叫“Rendering Engine”,大致可翻譯為 渲染引擎 。渲染這個詞對我們前端工作人員來說應該都不陌生。瀏覽器內核主要就負責,將對網頁語法的解釋(HTML,JS,CSS)渲染在屏幕上。它決定了瀏覽器如何顯示網頁的內容以及頁面的格式信息。

而前端工作人員,經常被這樣要求:能夠編寫兼容各大主流瀏覽器的代碼。我初步的認為,就是我們編寫的代碼,能夠在各大內核上被正確的渲染。

那么,要達到這一個目的,首先,我們就要知道,有些什么樣的瀏覽內核,他們各有什么特色。

Trident

也就是我們俗稱的“IE內核”,早期由微軟在Mosaic代碼的基礎之上修改而來的。

  • 優點
    是一款開放的內核,其接口內核設計的相當成熟
  • 缺點
    在早期,由于微軟長時間沒有更新該內核,使得它曾經一度與W3C標準脫節
    內核的大量bug等安全問題沒有及時解決,在非Trident內核瀏覽器的市場占有率大幅度提高時,使得很多網頁開發者意識到了網頁標準和非IE瀏覽器的瀏覽效果問題。

Webkit

蘋果公司出品,是開源世界的一大貢獻。

  • 優點
    開源,被多個瀏覽器應用。遵循W3C標準,性能非常好,網頁瀏覽速度較快
  • 缺點
    對于網頁代碼的容錯性不高

一個小補充,Webkit雖然被大家稱為瀏覽器內核,但不太適合直接稱為Rendering Engine,主要就是因為Webkit是由WebCore和JSCore兩大引擎構成的。

Gecko

Netscape6開始采用的內核,后來的Mozilla FireFox也采用了該內核,所以常被稱作“火狐內核”

  • 優點
    完全開源,可開發程序很高,可跨平臺,功能強大、豐富,可以支持很多復雜網頁效果和瀏覽器擴展接口
  • 缺點
    消耗很多的資源,比如內存

主要的瀏覽器內核就列了這三個,國內一般接觸到的瀏覽器基本都是這三個內核中的一個或者是組合。許多號稱擁有雙核甚至多核的瀏覽器,一般其中一個是Trident,再搭配另外一個。國內廠商一般將Trident內核叫做“兼容瀏覽模式”,其他內核叫做“告訴瀏覽模式”

一些小知識點

  • 我們常說的chrome瀏覽器是谷歌使用WebKit作為內核原型開發的一個分支,可以稱之為Chromium引擎。在執行js代碼,用的是谷歌自己的V8引擎

  • 在工作中,常常要求前端開發人員代碼能夠兼容各大主流瀏覽器,其實就是在于各大瀏覽器使用的渲染引擎和JS引擎不同,有部分自己的渲染規則。尤其是對于很多地區還會使用低版本的IE瀏覽器,上文說了,早期的版本沒有嚴格遵循W3C標準,所以給開發工作提出了很大挑戰。

  • 也許很多小伙伴在初學的時候,都會有過和我一樣的思考,所謂兼容主流瀏覽器,不就是考慮要兼容低版本的IE嗎?但是實際上,瀏覽器內核國內暫時沒有自己的瀏覽器內核,全是使用國外開源的內核,所以還有很多一些小眾的瀏覽器在開發的時候就是用Trident內核的。

  • 關于如何兼容主流瀏覽器,大家請移步看看別人的文章

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容