瀏覽器如何生成Web頁面

瀏覽器如何生成Web頁面

IE,Firefox等瀏覽器是如何生成Web頁面的呢?現在都在開發手機瀏覽器,開發瀏覽器需要坐什麼呢?在網上搜了相關的資料,幾乎沒有。下載Webkit的源碼瞄了一眼。正好發現作者寫了一系列文章介紹webkit的頁面生成技術。這裏總結一下。

 

1,用戶在瀏覽器輸入網址,瀏覽器通過網絡請求到服務器請求響應的頁面。這裏頁面分爲有frame和沒有frame的頁面兩種。有frame的頁面通過一個fameloader遞歸load各個frame中的document。Document loader先cache資源,然後解析。解析中可能會遇到一些subresource,如圖片,css,js等,再通過網絡請求響應資源。如下圖所示:

頁面load流程圖

 

2,load完所有資源後,由專門的ResourceHandler解析資源爲一個DOM樹,或者叫RenderTree。在解析過程中每增加一個節點都會相應的增加它的Renderer,除非這個節點不顯示。刪除該DOM節點時,destroy相應的Renderer。上邊的節點是否顯示已經涉及到,增加節點的時候還需要查詢該節點的css style。根據盒子模型設置相應的屬性等。block和inline等特殊處理。

 

3,下來需要確定各個節點的Layout。當動態增加了新的節點,還需要根據dirty標誌確定該節點是否需要重新render。

 

4,所有的信息齊備以後,瀏覽器就可以將頁面render到用戶的窗口了。

 

理解比較膚淺,只是簡單的介紹,許多細節的東西並沒有涉及。更多信息請參考http://webkit.org/coding/technical-articles.html

希望可以幫助大家更好的理解web,製作更好的web頁面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章