當(dāng)我在查閱每個瀏覽器的發(fā)展過程時,我感受到了Mozilla的倔強(qiáng),,IE的恐懼,,Opera無可奈何下的不甘心,感受到了Safari在他的家族培養(yǎng)下一定會更加優(yōu)秀以及Chrome這位技術(shù)先鋒的美好前景,。balabala………了一大堆,,沒辦法,因?yàn)槲沂敲米?,所以就愛關(guān)心“鄰里之間的雜事”~Piu——切入正題,。 瀏覽器的主要組件有以下幾部分: 用戶界面 除了用來顯示瀏覽器主窗口之外的瀏覽器的其他部分,例如書簽?zāi)夸?,地址欄,,前進(jìn)后退……。 瀏覽器引擎 這里說,,瀏覽器引擎是查詢及操作渲染引擎的接口,。我在網(wǎng)上搜的時候也大都是默認(rèn)為渲染引擎,。 渲染引擎 用來顯示請求的內(nèi)容,如果請求內(nèi)容為html,,那么負(fù)責(zé)解析html,、及css并將解釋后的結(jié)果顯示出來。還可以解析xml文件,。 js引擎 用來解釋執(zhí)行js代碼。 網(wǎng)絡(luò) 用來完成網(wǎng)絡(luò)調(diào)用,,如http請求,。 Native UI 用來繪制類似組合選擇框及對話框等基本組件,具有不特定于某個平臺的通用接口,,底層使用操作系統(tǒng)的用戶接口,。 數(shù)據(jù)存儲 屬于持久層,瀏覽器需要在硬盤中保存類似cookie的各種數(shù)據(jù),。 平常大家討論最熱鬧的就是瀏覽器內(nèi)核,,因?yàn)樗P(guān)乎到我們前端工程師們所設(shè)計的界面是否如我們心中的模樣展示在各個瀏覽器中。 雖然現(xiàn)在我們知道的瀏覽器有很多,,除了上篇文章介紹的5大主瀏覽器,,還有許多國產(chǎn)瀏覽器,,例如360,,遨游,世界之窗,,UC,搜搜……,,雖然瀏覽器廠家很多,但是這些瀏覽器會各自選擇適合自己的開源內(nèi)核,。 我知道的瀏覽器內(nèi)核: Trident 是Windows搭載的網(wǎng)頁瀏覽器即IE的內(nèi)核,。1997年在IE4中使用。
實(shí)際上是一款開放的內(nèi)核,,其接口內(nèi)核設(shè)計的相當(dāng)成熟,因此才有許多采用IE內(nèi)核而非IE的瀏覽器涌現(xiàn),。此外,,為了方便也有很多人直接簡稱其為IE內(nèi)核。
其中一個內(nèi)核是Trident,然后再增加一個其他內(nèi)核,。國內(nèi)的廠商一般把其他內(nèi)核叫做“高速瀏覽模式”,,而Trident則是“兼容瀏覽模式” Gecko
這二者均是在Mosaic內(nèi)核的基礎(chǔ)上重新編寫內(nèi)核,。 KHTML及KJS khtml為排版引擎即渲染引擎,kjs為js引擎,。均是由KDE研發(fā),。是自由軟件,符合GPL(由他為基礎(chǔ)開發(fā)的軟件也為開源軟件),。 Webkit 包括webcore排版引擎與JavaScriptCore解析引擎,,均是蘋果從KDE的KHTML及KJS引擎衍生而來。是蘋果公司自己的內(nèi)核,,也是Safari瀏覽器使用的內(nèi)核,,但是符合GPL條款,所以webkit為開源的,,但是Safari瀏覽器為部分開源,,自己公司的某些接口未對外開源。在Chrome 28之前,,google使用webkit中webcore與自己的javascript V8引擎,。那時也統(tǒng)稱為webkit引擎。 Blink 由Google和Opera Software開發(fā)的瀏覽器排版引擎,。至于js引擎,,想必Chrome依舊使用自己的V8引擎。 在2013年4月,,Google計劃將這個渲染引擎作為Chromium計劃的一部分,。這一渲染引擎是開源引擎WebKit中WebCore組件的一個分支。并且在Chrome(28及往后版本),、Opera(15及往后版本)中使用。此舉,,谷歌稱稱將與蘋果的開源瀏覽器核心Webkit分道揚(yáng)鑣,。 Presto 是Opera12.10至Opera7中采用的內(nèi)核,現(xiàn)已停止開發(fā)并廢棄,,由于這是商業(yè)引擎(非開源),,所以在發(fā)展上有了限制。這篇里面,,我有寫到,,在Opera12.10版本以后使用Blink作為其內(nèi)核。 Mozilla與三星也達(dá)成合作協(xié)議開發(fā)“下一代”瀏覽器渲染引擎Servo,。 人們對產(chǎn)品的體驗(yàn)沒有最好,,只有更好,。 |
|