日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > HTML >内容正文

HTML

各主流浏览器内核介绍

發(fā)布時(shí)間:2023/12/9 HTML 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 各主流浏览器内核介绍 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????? 所謂的“瀏覽器內(nèi)核”無(wú)非指的是一個(gè)瀏覽器最核心的部分——“Rendering Engine”,直譯這個(gè)詞匯叫做“渲染引擎”,不過(guò)我們也常稱其為“排版引擎”、“解釋引擎”。這個(gè)引擎的作用是幫助瀏覽器來(lái)渲染網(wǎng)頁(yè)的內(nèi)容,將頁(yè)面內(nèi) 容和排版代碼轉(zhuǎn)換為用戶所見(jiàn)的視圖。

注:有時(shí)候我們所說(shuō)的“瀏覽器內(nèi)核”甚至“渲染引擎”,其實(shí)除了渲染引擎,也悄悄包含了javascript引擎,如WebKit,它由渲染引擎WebCore和javascript引擎JSCore組成。

??????? 常見(jiàn)的瀏覽器內(nèi)核(或者說(shuō)渲染引擎)有很多個(gè),如Trident、Gecko、WebKit等等,不同的內(nèi)核對(duì)網(wǎng)頁(yè)編寫語(yǔ)法的解釋也有不同,進(jìn)而導(dǎo)致同一 個(gè)頁(yè)面在不同內(nèi)核的瀏覽器下顯示出來(lái)的效果也會(huì)有所出入,這也是前端工程師需要讓作品兼容各種瀏覽器的原因。

??????? 我們常常喜歡把瀏覽器內(nèi)核與某瀏覽器名稱直接掛鉤起來(lái),如IE內(nèi)核、Chrome內(nèi)核,其實(shí)是不全面的說(shuō)法。比如Opera在7.0版本到12.16版本 中采用的是獨(dú)立研發(fā)的Presto引擎,但在后續(xù)跟隨了Chrome的腳步加入了WebKit大本營(yíng),放棄了Presto;另外即使名稱相同,但版本不同 的引擎也可能存在較大差別。比如IE6使用的是Trident早期版本,存在許多bug,性能也較低。而最新的IE11所使用的Trident7.0版本 已經(jīng)可以支持WebGL(3D繪圖標(biāo)準(zhǔn))以及HTML5大部分標(biāo)準(zhǔn)。

??????? 下面按照各個(gè)主流瀏覽器,介紹下它們所使用的瀏覽器內(nèi)核的歷程。

Internet?Explorer:??

??????? IE開發(fā)計(jì)劃開始于1994年夏天,微軟為抵抗當(dāng)時(shí)主流的網(wǎng)景Netscape Navigator,要在Windows中開發(fā)適合自己的瀏覽器,但微軟并沒(méi)有時(shí)間從零開始。因此和Spyglass合作,于是IE從早期一款商業(yè)性的專 利網(wǎng)頁(yè)瀏覽器Spyglass Mosaic派生出來(lái),雖然Spyglass Mosaic與NCSA Mosaic(首款應(yīng)用得最廣泛的網(wǎng)頁(yè)瀏覽器)甚為相似,但Spyglass Mosaic則相對(duì)地較不出名并使用了NCSA Mosaic少量的源代碼。

??????? 1996年,微軟通過(guò)給予季度費(fèi)用和部分收入從Spyglass中取得了Spyglass Mosaic的源代碼和授權(quán)。從而使IE逐漸成為微軟專屬軟件。它采用的排版引擎(俗稱內(nèi)核)為Trident。每一次新的IE版本發(fā)布,也標(biāo)志著 Trident內(nèi)核版本號(hào)的提升。

??????? 下面是各Trident版本信息:

?????? 冷知識(shí):除Trident之外,微軟還有另一個(gè)網(wǎng)頁(yè)瀏覽器排版引擎,稱為Tasman,它是使用在「Internet Explorer for Mac」的排版引擎。相較于Trident,Tasman引擎對(duì)網(wǎng)頁(yè)標(biāo)準(zhǔn)有較佳的支持,但微軟自04年開始已經(jīng)停止了Mac計(jì)算機(jī)版本的 Internet Explorer的開發(fā)。

Safari

????????Safari是蘋果公司開發(fā)的 瀏覽器,使用了KDE(Linux桌面系統(tǒng))的KHTML作為瀏覽器的運(yùn)算核心,Safari所用瀏覽器內(nèi)核的名稱是大名鼎鼎的 WebKit。?Safari在2003年1月7日首度發(fā)行測(cè)試版,并成為Mac?OS?X?v10.3與之后版本的默認(rèn)瀏覽器,也成為蘋果其它系列產(chǎn)品 的指定瀏覽器(也已支持Windows平臺(tái))。

????????如上述可知,WebKit前身是KDE小組的KHTML引擎,可以說(shuō)WebKit是KHTML的一個(gè)開源的分支。當(dāng)年蘋果在比較了Gecko和KHTML后,選擇了后者來(lái)做引擎開發(fā),是因?yàn)镵HTML擁有清晰的源碼結(jié)構(gòu)和極快的渲染速度。

????????需要了解的是,雖然我們稱 WebKit為瀏覽器內(nèi)核(或?yàn)g覽器引擎),但不太適合直接稱之為我們開頭提到的Rendering?Engine(渲染引擎),因?yàn)閃ebKit本身主 要是由兩個(gè)引擎構(gòu)成的,一個(gè)正是渲染引擎“WebCore”,另一個(gè)則是javascript解釋引擎“JSCore”,它們均是從KDE的渲染引擎 KHTML及javascript解釋引擎KJS衍生而來(lái)。

????????在2010年4月,蘋果公司宣布了其瀏覽器引擎Webkit的最新項(xiàng)目?Webkit2。Webkit2的目標(biāo)是實(shí)現(xiàn)獨(dú)立進(jìn)程與非阻斷式API。

????????WebKit可以說(shuō)是蘋果公司給開源世界的一大貢獻(xiàn),基于此開源引擎,衍生了多個(gè)WebKit分支,如下面要介紹的Chrome的瀏覽器引擎。

Chrome?/?Chromium

????????谷歌Chrome/Chromium瀏覽器從08年創(chuàng)始至今一直使用蘋果公司的WebKit作為瀏覽器內(nèi)核原型,是WebKit的一個(gè)分支,我們可以稱之為Chromium引擎(注意我們這里說(shuō)的是Chromium引擎,而不是Chromium瀏覽器)。

????????這里順便介紹下Chrome和 Chromium兩個(gè)瀏覽器的區(qū)別——Chromium瀏覽器是谷歌為發(fā)展自家的瀏覽器Chrome而開啟的計(jì)劃,所以Chromium相當(dāng)于 Chrome的工程版或稱實(shí)驗(yàn)版(盡管Chrome自身也有β版階段),新功能會(huì)率先在Chromium上實(shí)現(xiàn),待驗(yàn)證后才會(huì)應(yīng)用在Chrome上。 Chromium一天最多可以更新十幾二十個(gè)版本,實(shí)驗(yàn)性的新特性都會(huì)現(xiàn)在這里放出,但是Chromium本身其實(shí)并不穩(wěn)定;而Chrome總共有四個(gè)更 新分支:Canary、Dev、Beta、Stable,穩(wěn)定性依次增強(qiáng)。

????????我們說(shuō)回引擎。 Chromium引擎雖然是屬于WebKit的分支,卻把WebKit的代碼梳理得可讀性提高很多,所以以前可能需要一天進(jìn)行編譯的代碼,現(xiàn)在只要兩個(gè)小 時(shí)就能搞定。因此Chromium引擎和其它基于WebKit的引擎所渲染頁(yè)面的效果也是有出入的?;谝陨显?#xff0c;有的地方會(huì)把Chromium引擎跟 WebKit區(qū)分開來(lái),有的地方則直接把Chromium引擎歸為WebKit(比如維基百科),其實(shí)都有其道理。

????????然而在13年發(fā)布的 Chrome?28.0.1469.0版本開始,Chrome放棄Chromium引擎轉(zhuǎn)而使用最新的Blink引擎(基于WebKit2——蘋果公司于 2010年推出的新的WebKit引擎),Blink對(duì)比上一代的引擎精簡(jiǎn)了代碼、改善了DOM框架,也提升了安全性。

Opera

????????Opera瀏覽器,是一款挪威 Opera?Software?ASA公司制作的支持多頁(yè)面標(biāo)簽式瀏覽的網(wǎng)絡(luò)瀏覽器。是跨平臺(tái)瀏覽器可以在Windows、Mac和Linux三個(gè)操作系 統(tǒng)平臺(tái)上運(yùn)行。Opera瀏覽器創(chuàng)始于1995年4月,到2014年3月4日,官方發(fā)布的個(gè)人電腦用的最新版本為Opera20。

????????Opera的一個(gè)里程碑作品是Opera7.0,因?yàn)樗褂昧薕pera?Software自主開發(fā)的Presto渲染引擎,取代了舊版Opera?4至6版本使用的Elektra排版引擎。

????????Presto加入了動(dòng)態(tài)功能,例如網(wǎng)頁(yè)或其部分可隨著DOM及Script語(yǔ)法的事件而重新排版。Presto在推出后不斷有更新版本推出,使不少錯(cuò)誤得以修正,以及閱讀Javascript效能得以最佳化,并成為當(dāng)時(shí)速度最快的引擎。?

????????然而為了減少研發(fā)成本,Opera在2013年2月宣布放棄Presto,轉(zhuǎn)而跟隨Chrome使用WebKit分支的Chromium引擎作為自家瀏覽器核心引擎。

????????在Chrome與2013年推出Blink引擎(也是基于WebKit的分支)之后,Opera也緊跟其腳步表示將轉(zhuǎn)而使用Blink作為瀏覽器核心引擎。

Firefox

????????Mozilla?Firefox是一個(gè)開源網(wǎng)頁(yè)瀏覽器,原名是Firebird,2004年2月9日,Mozilla?Firebird決定改稱Mozilla?Firefox。Firefox瀏覽器使用的是Gecko內(nèi)核,其發(fā)展歷程如下:

????????1997年,網(wǎng)景收購(gòu)了DigitalStyle。當(dāng)時(shí),網(wǎng)景瀏覽器在各方面的表現(xiàn)已經(jīng)比不上她的主要競(jìng)爭(zhēng)對(duì)手Internet?Explorer。網(wǎng)景開始研發(fā)下一代的排版引擎,并期望把新的排版引擎應(yīng)用于下一版本的網(wǎng)景瀏覽器上。?

????????1998年初,Mozilla 計(jì)劃開始執(zhí)行。這個(gè)新的排版引擎名為Raptor,以開發(fā)源碼的方式發(fā)放于互聯(lián)網(wǎng)上。后來(lái),因?yàn)樯虡?biāo)問(wèn)題,Raptor改名為NGLayout(即 next?generation?layout之意)。而最后NGLayout就被網(wǎng)景重新命名為Gecko。?

????????2003年7月15日時(shí)代華納解散了網(wǎng)景公司,大部分開發(fā)者被解雇。Mozilla基金會(huì)亦在當(dāng)天成立,繼續(xù)推動(dòng)著Gecko的發(fā)展。時(shí)至今天,Gecko仍繼續(xù)由Mozilla的雇員和義工所維護(hù)和發(fā)展。?

?

????????最后還是再談?wù)?javascript引擎(后面統(tǒng)稱JS引擎)這東西。我們上述的渲染引擎主要是負(fù)責(zé)HTML、CSS以及其他一些東西的渲染,而JS引擎則主要負(fù)責(zé)對(duì) javascript的渲染,一個(gè)JS引擎的好壞決定了一個(gè)瀏覽器對(duì)腳本的加載和執(zhí)行速度,也影響了其跑分。

????????下方列出各種主流瀏覽器各自的JS引擎,了解下即可:

Firefox:

SpiderMonkey:第一款JavaScript引擎,由Brendan?Eich在Netscape?Communications時(shí)編寫,用于Mozilla?Firefox?1.0~3.0版本。

Rhino:由Mozilla基金會(huì)管理,開放源代碼,完全以Java編寫。

TraceMonkey:基于實(shí)時(shí)編譯的引擎,其中部份代碼取自Tamarin引擎,用于Mozilla?Firefox?3.5~3.6版本。

JaegerMonkey:德文J?ger原意為獵人,結(jié)合追蹤和組合碼技術(shù)大幅提高性能,部分技術(shù)借鑿了V8、JavaScriptCore、WebKit:用于Mozilla?Firefox?4.0以上版本。

IonMonkey:可以對(duì)JavaScript編譯后的結(jié)果進(jìn)行優(yōu)化,用于Mozilla?Firefox?18.0以上版本。

OdinMonkey:可以對(duì)asm.js進(jìn)行優(yōu)化,用于Mozilla?Firefox?22.0以上版本。

Chrome:

V8:開源,由Google丹麥開發(fā),是Google?Chrome的一部分。

注:我們上面提到Chrome是基于 WebKit的分支,而WebKit又由渲染引擎“WebCore”和JS解釋引擎“JSCore”組成,可能會(huì)讓你搞不清V8和JSCore的關(guān)系。你 可以這樣理解——WebKit是一塊主板,JSCore是一塊可拆卸的內(nèi)存條,谷歌實(shí)際上認(rèn)為Webkit中的JSCore不夠好,才自己搞了一個(gè) V8?JS引擎,這就是Chrome比Safari在某些JS測(cè)試中效率更高的原因。

IE:

Chakra:中文譯名為查克拉,用于Internet?Explorer?9的32位版本及IE10+。

Opera:

Linear?A:用于Opera?4.0~6.1版本。

Linear?B:用于Opera?7.0~9.2版本。

Futhark:用于Opera?9.5~10.2版本。

Carakan:由Opera軟件公司編寫,自O(shè)pera10.50版本開始使用。

其它:

KJS:KDE的ECMAScript/JavaScript引擎,最初由Harri?Porten開發(fā),用于KDE項(xiàng)目的Konqueror網(wǎng)頁(yè)瀏覽器中。

Narcissus:開放源代碼,由Brendan?Eich編寫(他也參與編寫了第一個(gè)SpiderMonkey)。

Tamarin:由Adobe?Labs編寫,Flash?Player?9所使用的引擎。

Nitro(原名SquirrelFish):為Safari?4編寫。

轉(zhuǎn)載于:https://www.cnblogs.com/PowellZhao/p/5766646.html

總結(jié)

以上是生活随笔為你收集整理的各主流浏览器内核介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。