web頁面渲染解析原理

2021-08-06 05:30:15 字數 995 閱讀 7209

使用者輸入**(假設是個html頁面,並且是第一次訪問),瀏覽器向伺服器發出請求,伺服器返回html檔案

然後瀏覽器從head標籤開始逐行解析html**,遇到link標籤又會向伺服器請求載入css檔案,不過這個過程是非同步的,有多個css檔案,會多個同時載入。

繼續往後如果遇到script標籤或者js檔案就會立即執行它,而且js檔案的載入是同步的。

到了body標籤就開始渲染頁面了,按照從頭到尾的順序依次渲染dom元素,如果遇到img標籤會非同步向伺服器傳送請求載入檔案,執行此過程時瀏覽器會繼續渲染頁面,因為載入檔案是非同步的。

如果遇到了dom節點的變化,元素尺寸變化,瀏覽器不得不回頭重新渲染這部分**。

不同於css檔案,js是阻塞式的載入,當瀏覽器在執行js**時,不會做其他的事情。只有js**執行後,才會繼續渲染頁面。所以應該把js放到頁面的底部。

影響頁面渲染速度主要有:reflow(回流)和repaint(重繪)。其中回流是導致dom指令碼執行低效的關鍵因素之一。

1.reflow(回流)

當瀏覽器發現頁面某個部分發生了變化影響了布局,需要倒回去重新渲染, 該過程稱為reflow(回流)。

2.repaint(重繪)

如果只是改變某個元素的背景色、文 字顏色、邊框顏色等等不影響它周圍或內部布局的屬性,將只會引起瀏覽器 repaint(重繪)。

1.讀入第乙個**塊。

2.對**做語法分析,如果有錯報語法錯誤,並停止解析當前**塊,開始讀取下乙個**塊。

3.若語法分析沒問題,進行「預編譯處理」處理,將變數和函式的宣告提前,但變數並沒有初始化,值為undefined。

如:alert(a); var a = 1;相當於:var a; alert(a); a=1;

4.預編譯之後,才開始正式執行語句,如果某個語句有錯,當前**塊中後面的語句不會執行,並且開始讀取下乙個**塊。

5.如果當前**塊完全正確,**執行完畢後,開始讀取下乙個**塊。

頁面渲染原理

渲染引擎 渲染引擎可以顯示html xml文件及,它也可以借助外掛程式 一種瀏覽器擴充套件 顯示其他型別資料,例如使用pdf閱讀器外掛程式可以顯示pdf格式。不同的瀏覽器有不同的渲染引擎 trident mshtml 核心 ie,maxthon,tt,the world,360,搜狗瀏覽器等 gec...

springboot 渲染web頁面

spring boot提供了預設配置的模板引擎主要有以下幾種 注意 避免使用jsp,jsp無法實現spring boot的多種特性 org.springframework.bootgroupid spring boot starter webartifactid dependency org.spr...

頁面渲染的原理及流程

根據html檔案構建dom樹和cssom樹。構建dom樹期間,如果遇到js,阻塞dom樹及cssom樹的構建,優先載入js檔案,載入完畢,再繼續構建dom樹及cssom樹。構建渲染樹。頁面的重繪與重排 也有稱回流 頁面渲染完成後,若js操作了dom節點,根據js對dom操作動作的大小,瀏覽器對頁面進...