瀏覽器引擎
原地址:http://wenku.baidu.com/view/67fa6feaaeaad1f346933f28.html
簡介
現在瀏覽器的核心引擎,基本上是三分天下:
Trident: IE 以Trident 作為核心引擎。
Gecko: Firefox 是基於 Gecko 開發。
WebKit: Safari, Google Chrome 基於 Webkit 開發。
還有一個Presto:Opera,任天堂DS瀏覽器,發展也良好。
WebKit 核心在手機上的應用十分廣泛,例如 Google 的手機Gphone、 Apple 的 iPhone, Nokia’s Series 60 browser 等所使用的 Browser 核心引擎,都是基於 WebKit。
WebKit組成
WebKit 主要包括三個部分WebCore、JavascriptCore 及Ports部分。WebKit 專注的核心部分主要是:分析Html,Javascript 的解析和佈局渲染技術。分別在由WebCore/html,JavascriptCore 和WebCore/rendering來完成。
體系結構圖如下:
工作流程
流程解析: 1. 使用者向Shell發出頁面請求後,頁面的URL 或本地檔名被髮送到Shell;
2. Shell 呼叫IO元件,把URL 傳達到IO元件;
3. IO元件使用HTTP 協議或再呼叫本地IO獲取HTML/XHTML源資料,返回Shell;
4. Shell 把IO 返回的HTML/XHTML source 提交HTML/XHTML分析器;
5. HTML/XHTML分析器分析HTML/XHTML程式碼,構建一棵DOM 樹,樹根為HTMLDocument;
6. 通過DOM 樹,生成Render 樹。 Render樹,簡單的說來,它是對DOM 樹更進一步的描述,其描述的內容主要與佈局渲染等CSS相關屬性如left、 top、width、height、color、font等有關,因為不同的DOM 樹結點可能會有不同的佈局渲染屬性,甚至佈局時會按照標準動態生成一些 匿名節點,所以為了更加方便的描述佈局及渲染,WebKit核心又生成一顆Render 樹來描述DOM 樹的佈局渲染等特性,當然DOM 樹與Render 樹 不是一一對應,但可以相互關聯;
7. 佈局管理器layout對應控制元件。當佈局管理器對視覺化元素指派好位置和大小後,視覺化元素必須要嚴格遵守佈局管理器給它分配的位置和大小,不能擅自更改,相應控制元件根據自己的屬性進行表現自己了,如背景,外形等。
處理流程
流程描述: 通過向伺服器傳送請求伺服器通過請求,發給客戶端html的內容瀏覽器通過W3C 規範,把接受到的內容解析成DOM 樹,在解析DOM 樹的同時會生成對應的Render 樹。佈局管理器通過Render 樹,開始佈局。這個是一個動態的過程,DOM在這個時候會繼續向伺服器申請自己需要的東西, 比如CSS,JavaScript,圖片等,然後佈局器動態的載入或佈局,這樣可以改善使用者的體驗,最後把整個網頁render出來。
原理分析
演算法分析
相關文章
- 瀏覽器渲染引擎瀏覽器
- 瀏覽器之渲染引擎瀏覽器
- 瀏覽器核心渲染:重建引擎瀏覽器
- 瀏覽器引擎、渲染引擎與JavaScript引擎的區別瀏覽器JavaScript
- 主流瀏覽器核心及JS引擎瀏覽器JS
- 瀏覽器核心渲染引擎工作流程瀏覽器
- 「前端那些事兒」① 瀏覽器渲染引擎前端瀏覽器
- Microsoft 開源 Edge 瀏覽器的 javascript 引擎ROS瀏覽器JavaScript
- 【瀏覽器】瀏覽器基本工作原理瀏覽器
- 瀏覽器瀏覽器
- Chrome 瀏覽器修改 UA 模擬其它瀏覽器,包括移動瀏覽器Chrome瀏覽器
- 深入瀏覽器工作原理和JS引擎(V8引擎為例)瀏覽器JS
- CSS Houdini:用瀏覽器引擎實現高階CSS效果CSS瀏覽器
- 基石-初見瀏覽器(一):瀏覽器渲染瀏覽器
- Min瀏覽器: 更快更輕量瀏覽器瀏覽器
- .net火狐瀏覽器 ie瀏覽器 判斷瀏覽器
- microsoft edge是ie瀏覽器嗎 edge瀏覽器和ie瀏覽器一樣嗎ROS瀏覽器
- 分享一個瀏覽器外掛:搜尋引擎結果過濾器瀏覽器過濾器
- 前端面試瀏覽器系列:瀏覽器快取前端面試瀏覽器快取
- “木偶”瀏覽器瀏覽器
- 瀏覽器原理瀏覽器
- 瀏覽器核心瀏覽器
- vivaldi瀏覽器瀏覽器
- Mozilla瀏覽器瀏覽器
- 瀏覽器渲染瀏覽器
- [瀏覽器]LocalStorage瀏覽器
- js檢測搜狗瀏覽器、百度瀏覽器、微信瀏覽器程式碼例項JS瀏覽器
- 判斷當前瀏覽器是不是微信瀏覽器瀏覽器
- Web 開發者新神器:能執行遊戲引擎的火狐 Quantum 瀏覽器Web遊戲引擎瀏覽器
- Edge瀏覽器被搜狗瀏覽器篡改的解決方法瀏覽器
- javascript判斷當前瀏覽器是不是微信瀏覽器JavaScript瀏覽器
- 使用chrome瀏覽器驅動自動開啟瀏覽器Chrome瀏覽器
- [BUG反饋]IE瀏覽器,百度瀏覽器,搜狗瀏覽器批量操作功能都不相容!!!!傲遊、火狐、谷歌瀏覽器可以瀏覽器谷歌
- 瀏覽器安全(一)瀏覽器
- 瀏覽器事件解析瀏覽器事件
- 瀏覽器快取瀏覽器快取
- 使用瀏覽器事件瀏覽器事件
- IE瀏覽器相容瀏覽器