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