webkit 学习笔记 - 1. 浏览器与浏览器内核
生活随笔
收集整理的這篇文章主要介紹了
webkit 学习笔记 - 1. 浏览器与浏览器内核
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
瀏覽器
chrominum
- Chrominum 本身就是一個(gè)瀏覽器,而不是Chrome瀏覽器的內(nèi)核,Chrome瀏覽器一般選擇Chrominum的穩(wěn)定版本作為它的基礎(chǔ)
格局
- 對(duì)于桌面系統(tǒng)而言,IE、Firefox、Chrome占據(jù)了市場(chǎng)90%的瀏覽器份額。而在移動(dòng)端,由于蘋(píng)果的IOS系統(tǒng)和谷歌的Android系統(tǒng)占據(jù)了絕對(duì)領(lǐng)先的地位,因而基本上移動(dòng)端的瀏覽器都是基于Webkit
HTML
- HTML1.0由著名的Berners-Lee于1991年提出,此后經(jīng)歷了多次版本更新,直到1997年4.0版本和1999年的4.01版本。
- 具有劃時(shí)代意義的HTML5技術(shù)在2012年由W3C和WHATWG推薦為候選規(guī)范。HTML5包含了一系列標(biāo)準(zhǔn),一共包含10個(gè)大的分類(lèi)
瀏覽器用戶(hù)代理(User-agent)
- 用戶(hù)代理主要用來(lái)表明瀏覽器的身份。因?yàn)槟撤N瀏覽器的流行,很多站點(diǎn)會(huì)根據(jù)這種瀏覽器來(lái)定制特定內(nèi)容,當(dāng)其他瀏覽器也需要相同的網(wǎng)頁(yè)時(shí),就只能通過(guò)在User-agent里添加上此種瀏覽器的信息來(lái)冒充此種瀏覽器
瀏覽器內(nèi)核及其特性
- 瀏覽器內(nèi)核通常也被稱(chēng)為渲染引擎,渲染引擎能夠?qū)TML/CSS/JS文本及其相應(yīng)的資源轉(zhuǎn)換成圖像結(jié)果
- 目前,主要瀏覽器內(nèi)核包括Trident(IE),Gecko(Firefox),Webkit。2013年,Google宣布了Blink內(nèi)核,它其實(shí)是從Webkit復(fù)制出去的
內(nèi)核特征
- 渲染引擎主要包括四個(gè)模塊
HTML 解釋器
CSS 解釋器
布局
Javascript 引擎
- 一般來(lái)說(shuō),渲染引擎會(huì)內(nèi)置一個(gè)默認(rèn)的Javascript引擎,不過(guò)大多數(shù)瀏覽器會(huì)將其替換,所以嚴(yán)格來(lái)說(shuō),Javascript引擎并不屬于內(nèi)核的一部分。Javascript引擎能夠解釋Javascript代碼并通過(guò)DOM接口和CSSOM接口來(lái)修改網(wǎng)頁(yè)的內(nèi)容和樣式
- 以上這些模塊依賴(lài)很多系統(tǒng)內(nèi)置的模塊,包括網(wǎng)絡(luò)、存儲(chǔ)、2D/3D圖像、音視視頻和圖形解碼器等。如此說(shuō)來(lái),實(shí)際上,渲染引擎應(yīng)該還包括如何使用這些依賴(lài)模塊的部分
- 當(dāng)DOM建立的時(shí)候,渲染引擎接收來(lái)自CSS解釋器的信息,構(gòu)建一個(gè)新的內(nèi)部繪圖模型。該模型由布局模塊計(jì)算模型內(nèi)各個(gè)元素的位置和大小信息,最后調(diào)用繪圖模塊完成網(wǎng)頁(yè)的繪制
Webkit
- 2001年,蘋(píng)果宣布從KHTML的源代碼樹(shù)中復(fù)制代碼出來(lái),成立了一個(gè)新的項(xiàng)目,這就時(shí)大名鼎鼎的Webkit。蘋(píng)果公司在2005年將Webkit項(xiàng)目開(kāi)源
- “Webkit”這個(gè)單詞其實(shí)可以表示成兩種含義,姑且稱(chēng)之為廣義Webkit和狹義Webkit。廣義Webkit指的是整個(gè)Webkit項(xiàng)目,狹義Webkit指的是Webcore(包含HTML解釋器,CSS解釋器,布局模塊)和Javascript引擎之上的一層綁定和嵌入式編程接口,可以被各種瀏覽器調(diào)用
- Webkit被很很多瀏覽器所實(shí)現(xiàn),每個(gè)移植的HTML5規(guī)范支持不盡相同,所以,盡管都是使用Webkit,但還是可能對(duì)兼容性帶來(lái)很大的挑戰(zhàn)
webkit 和 webkit2
- Webkit2也是一個(gè)狹義上的綁定和接口層,但是Webkit2不是Webkit綁定和接口層的簡(jiǎn)單升級(jí),而是一組支持新架構(gòu)(多進(jìn)程)的全新綁定和接口層
- 20104月,蘋(píng)果宣布了Webkit2,目標(biāo)就是抽象出一組新的編程接口,該接口和調(diào)用者代碼與網(wǎng)頁(yè)的渲染工作代碼不在同一個(gè)進(jìn)程,這顯然有了Chrominum多進(jìn)程的優(yōu)點(diǎn)。而且,Webkit接口的使用者不需要理解和接觸背后的多進(jìn)程和進(jìn)程間通信等復(fù)雜機(jī)制,Webkit2部分代碼也屬于Webkit項(xiàng)目。Webkit2進(jìn)程結(jié)構(gòu)模型至少包含兩個(gè)進(jìn)程,其一時(shí)UI進(jìn)程(綁定和接口層所在的進(jìn)程,也就是瀏覽器的UI進(jìn)程),其二時(shí)Web進(jìn)程(網(wǎng)頁(yè)渲染所在的進(jìn)程)。下面時(shí)Webkit2和Chrominum的進(jìn)程模型圖
- 通過(guò)API boundary可以看出來(lái),基于Chrominum項(xiàng)目框架來(lái)開(kāi)發(fā)一個(gè)瀏覽器,開(kāi)發(fā)者需要自己處理多進(jìn)程和多進(jìn)程之間的通信,而使用Webkit2架構(gòu)則不需要
Blink
- Blink時(shí)Chrominum瀏覽器的內(nèi)核,最初時(shí)用從Webkit項(xiàng)目復(fù)制過(guò)來(lái)的
- Blink有一個(gè)大膽的想法,想要將DOM樹(shù)引入Javascript引擎中(目前應(yīng)該還未實(shí)現(xiàn))。目前DOM樹(shù)和Javascript引擎是分開(kāi)的,在DOM樹(shù)與Javascript引擎中間有一個(gè)橋階層,這意味著Javascript引擎訪(fǎng)問(wèn)DOM樹(shù)需要較高的代價(jià)
轉(zhuǎn)自 webkit學(xué)習(xí)筆記-(1)瀏覽器和瀏覽器內(nèi)核
總結(jié)
以上是生活随笔為你收集整理的webkit 学习笔记 - 1. 浏览器与浏览器内核的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中国操纵杆电位计市场现状研究分析与发展前
- 下一篇: 金山网盾3.6两周拦阻2000万次恶意软