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