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

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

生活随笔

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

HTML

各种主流浏览器内核引擎的对比分析

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

要搞清楚瀏覽器內(nèi)核是什么,首先應(yīng)該先搞清楚瀏覽器的構(gòu)成。簡(jiǎn)單來(lái)說(shuō)瀏覽器可以分為 兩部分,shell+內(nèi)核。其中shell的種類(lèi)相對(duì)比較多,內(nèi)核則比較少。Shell是指瀏覽器的外殼:例如菜單,工具欄等。主要是提供給用戶(hù)界面操 作,參數(shù)設(shè)置等等。它是調(diào)用內(nèi)核來(lái)實(shí)現(xiàn)各種功能的。內(nèi)核才是瀏覽器的核心。內(nèi)核是基于標(biāo)記語(yǔ)言顯示內(nèi)容的程序或模塊。也有一些瀏覽器并不區(qū)分外殼和內(nèi)核。 從Mozilla將Gecko獨(dú)立出來(lái)后,才有了外殼和內(nèi)核的明確劃分。目前主流的瀏覽器有IE6、IE8、Mozilla、FireFox、 Opera、Safari、Chrome、Netscape等。

什么是瀏覽器內(nèi)核

瀏覽器內(nèi)核又可以分成兩部分:渲染引擎(layout engineer或者Rendering Engine)和JS引擎。它負(fù)責(zé)取得網(wǎng)頁(yè)的內(nèi)容(HTML、XML、圖像等等)、整理訊息(例如加入CSS等),以及計(jì)算網(wǎng)頁(yè)的顯示方式,然后會(huì)輸出至 顯示器或打印機(jī)。瀏覽器的內(nèi)核的不同對(duì)于網(wǎng)頁(yè)的語(yǔ)法解釋會(huì)有不同,所以渲染的效果也不相同。所有網(wǎng)頁(yè)瀏覽器、電子郵件客戶(hù)端以及其它需要編輯、顯示網(wǎng)絡(luò)內(nèi) 容的應(yīng)用程序都需要內(nèi)核。(參見(jiàn)維基百科)JS引擎則是解析Javascript語(yǔ)言,執(zhí)行javascript語(yǔ)言來(lái)實(shí)現(xiàn)網(wǎng)頁(yè)的動(dòng)態(tài)效果。最開(kāi)始渲染引 擎和JS引擎并沒(méi)有區(qū)分的很明確,后來(lái)JS引擎越來(lái)越獨(dú)立,內(nèi)核就傾向于只指渲染引擎。有一個(gè)網(wǎng)頁(yè)標(biāo)準(zhǔn)計(jì)劃小組制作了一個(gè)ACID來(lái)測(cè)試引擎的兼容性和性 能。內(nèi)核的種類(lèi)很多,如加上沒(méi)什么人使用的非商業(yè)的免費(fèi)內(nèi)核,可能會(huì)有10多種,但是常見(jiàn)的瀏覽器內(nèi)核可以分這四種:Trident、Gecko、 Presto、Webkit。

Trident又稱(chēng)MSHTML,是微軟開(kāi)發(fā)的渲染引擎(包含了Javascript引擎JScript),他已經(jīng)深入了Windows操作系統(tǒng)的 骨髓,例如Windows Media Play,Windows Explorer,Outlook Express等都使用了。目前很多瀏覽器都使用這個(gè)引擎,例如IE,Maxthon(最新版已經(jīng)不使用)等。

Gecko是C++開(kāi)發(fā)的,Open Source的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox。

Webkit是蘋(píng)果公司基于KHTML開(kāi)發(fā)的。他包括Webcore和JavaScriptCore(SquirrelFish,V8)兩個(gè)引擎。主要的使用者有Safari,Chrome。

Presto由Opera Software公司開(kāi)始的,用于Opera的渲染引擎。Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的內(nèi)核。

主流瀏覽器所使用的內(nèi)核分類(lèi)

Trident內(nèi)核:IE,MaxThon,TT,The World,360,搜狗瀏覽器等
Gecko內(nèi)核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
Presto內(nèi)核:Opera7及以上
Webkit內(nèi)核:Safari,Chrome等

Engine

Creator

Software license

Leading application

Gecko

Netscape/Mozilla Foundation

MPL/GNU GPL/GNU LGPL tri-license

Mozilla Firefox

KHTML

KDE

GNU LGPL

Konqueror

Presto

Opera Software

Proprietary

Opera

Tasman

Microsoft

Proprietary

Microsoft Entourage

Trident

Microsoft

Proprietary

Internet Explorer

WebKit (Based on KHTML)

WebKit Foundation

GNU LGPL, BSD-style

Safari, Google Chrome

JS引擎

JavaScript最初由網(wǎng)景公司的Brendan Eich設(shè)計(jì),是一種動(dòng)態(tài)、弱類(lèi)型、基于原型的語(yǔ)言,內(nèi)置支持類(lèi)。以它為基礎(chǔ),制定了ECMAScript標(biāo) 準(zhǔn)。他的起源并不是如《Javascript高級(jí)程序設(shè)計(jì)》書(shū)中所述,是Brendan Eich自主發(fā)明的。(參考aimingoo的考證文章)JavaScript在瀏覽器的實(shí)現(xiàn)中還必須含有DOM和BOM。Web瀏覽器一般使用公共 API來(lái)創(chuàng)建主機(jī)對(duì)象來(lái)負(fù)責(zé)將DOM對(duì)象反射進(jìn)JavaScript。

?

Trident

Gecko

WebKit

KHTML

Presto

Name of ECMAScript Engine

JScript

Spidermonkey

JavaScriptCore

KJS

linear b/futhark

ECMAScript Version

Edition 3

Yes

0.6

Yes

Yes

7.0

JavaScript 1.5 extensions

No

0.6

Yes

Yes

7.0

JavaScript 1.7 extensions

No

1.8.1

No

No

No

JavaScript 1.8 extensions

No

1.9

No

No

No

瀏覽器內(nèi)核實(shí)現(xiàn)原理

渲染流程如下所示:

Mozilla架構(gòu)設(shè)計(jì):界面和實(shí)現(xiàn)分離。采用標(biāo)記語(yǔ)言,JavaScript,C++來(lái)開(kāi)發(fā)。JSEngine就是指SpideMonkey,Layout就是指Gecko。Mozilla的一個(gè)關(guān)鍵部分是XPCOM和NSPR。

Webkit的處理流程:


瀏覽器內(nèi)核的優(yōu)缺點(diǎn)

Trident:這種瀏覽器內(nèi)核是IE瀏覽器用的內(nèi)核,因?yàn)樵谠缙贗E 占有大量的市場(chǎng)份額,所以這種內(nèi)核比較流行,以前有很多網(wǎng)頁(yè)也是根據(jù)這個(gè)內(nèi)核的標(biāo)準(zhǔn)來(lái)編寫(xiě)的,但是實(shí)際上這個(gè)內(nèi)核對(duì)真正的網(wǎng)頁(yè)標(biāo)準(zhǔn)支持不是很好,甚至在 2005年,與網(wǎng)頁(yè)標(biāo)準(zhǔn)制定組織(W3C理事會(huì))所制定的標(biāo)準(zhǔn)發(fā)生了脫節(jié),同時(shí) Trident 內(nèi)核本身的BUG比較多,對(duì)一些符合W3C標(biāo)準(zhǔn)的網(wǎng)頁(yè)代碼支持不是很好,這在早期的IE版本中比較明顯,比如IE5.5以前(包括IE5.5),其實(shí) IE6對(duì)W3C標(biāo)準(zhǔn)的支持也不是很好,而我們現(xiàn)在很多人都在使用IE6,事實(shí)上它也屬于一個(gè)比較早的版本。

但是由于IE的高市場(chǎng)占有率,微軟也很長(zhǎng)時(shí)間沒(méi)有更新Trident內(nèi)核,這導(dǎo)致了二個(gè)結(jié)果
1,Trident內(nèi)核和W3C標(biāo)準(zhǔn)脫節(jié)。
2,Trident內(nèi)核的大量Bug等安全問(wèn)題沒(méi)有得到解決,加上一些專(zhuān)家學(xué)者公開(kāi)自己認(rèn)為IE瀏覽器不安全的觀點(diǎn),使很多用戶(hù)開(kāi)始轉(zhuǎn)向其他瀏覽器,FF,Opera就是這時(shí)期興起的。
Gecko:這是Firefox 和 Flock 所采用內(nèi)核,這個(gè)內(nèi)核的優(yōu)點(diǎn)就是功能強(qiáng)大、豐富,可以支持很多復(fù)雜網(wǎng)頁(yè)效果和瀏覽器擴(kuò)展接口,但是代價(jià)是也顯而易見(jiàn)就是要消耗很多的資源,比如內(nèi)存。
Presto:Opera 采用的是 Presto內(nèi)核,Presto內(nèi)核被稱(chēng)為公認(rèn)的瀏覽網(wǎng)頁(yè)速度最快的內(nèi)核,這得益于它在開(kāi)發(fā)時(shí)的天生優(yōu)勢(shì),在處理JS腳本等腳本語(yǔ)言時(shí),會(huì)比其他的內(nèi)核快3倍左右,缺點(diǎn)就是為了達(dá)到很快的速度而丟掉了一部分網(wǎng)頁(yè)兼容性。

Webkit:Webkit 是 Safari 采用的內(nèi)核,不過(guò) Safari 是蘋(píng)果系統(tǒng)下的瀏覽器(雖然也有windows版,但是比較少),所以只簡(jiǎn)單介紹一下這個(gè)內(nèi)核的優(yōu)點(diǎn)和缺點(diǎn),優(yōu)點(diǎn)就是網(wǎng)頁(yè)瀏覽速度較快,雖然不及 Presto 但是也勝于 Gecko 和 Trident,缺點(diǎn)是對(duì)于網(wǎng)頁(yè)代碼的容錯(cuò)性不高,也就是說(shuō)對(duì)網(wǎng)頁(yè)代碼的兼容性較低,會(huì)使一些編寫(xiě)不標(biāo)準(zhǔn)的網(wǎng)頁(yè)無(wú)法正確顯示。

總結(jié):就瀏覽器來(lái)說(shuō),互聯(lián)網(wǎng)經(jīng)歷了十年的高速發(fā)展期,近幾年市場(chǎng)上也推出了很多新的瀏覽器,但是他們并非是采用自主開(kāi)發(fā)的內(nèi)核,所以瀏覽器內(nèi)核本身實(shí)際沒(méi)有實(shí)質(zhì)突破。

在CSS3中,各個(gè)瀏覽器的私有屬性前綴:

-moz代表firefox瀏覽器私有屬性 -ms代表IE瀏覽器私有屬性 -webkit代表chrome、safari私有屬性 -o-表示opera

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

總結(jié)

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

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