1.什麼是dom渲染?
dom渲染指的是對於瀏覽器中展現給使用者的dom文件的生成的過程。
2.dom渲染的演化過程,大致可以分為可以分為三個階段:
1.解析html檔案,建立dom樹
自上而下,遇到任何樣式(link、style)與指令碼(script)都會阻塞(外部樣式不阻塞後續外部指令碼的載入)。
2.解析css
優先順序:瀏覽器預設設定《使用者設定《外部樣式《內聯樣式100+類或偽類數10+tag名稱*1
3.將css與dom合併,構建渲染樹(renderingtree)
dom樹與html一一對應,渲染樹會忽略諸如head、display:none的元素
4.布局和繪製,重繪(repaint)和重排(reflow)
reflow(重排):根據 reader tree 進行節點資訊計算(layout),若渲染樹的一部分更新,且尺寸變化,就會發生重排;
repaint(重繪):根據計算好的資訊繪製整個頁面(painting),部分節點需要更新,但不改變其他集合形狀。如改變某個元素的顏色,就會發生重繪。
5.理論上,每一次的dom更改或者css幾何屬性更改,都會引起一次瀏覽器的重繪/重排過程,而如果是css非幾何屬性更改,則只會引起重繪過程,所以重排一定引起重繪,重繪不一定引起重排
6.因為有時js也參與dom tree 的構建,因而我們會先執行js再開始構建渲染樹,js指令碼會阻塞reader tree的構建,即阻塞了頁面的渲染
傳統的DOM渲染方式?
dom渲染指的是對於瀏覽器中展現給使用者的dom文件的生成的過程。純後端渲染 純前端渲染 服務端的js渲染結合前端渲染 1 純後端渲染 採用這樣的渲染方式,就是每乙個頁面中,在chrome中展開得到的dom,和伺服器返回的dom是基本一致的 可以通過檢視網頁源 來得到伺服器返回的dom 當然,這裡是...
事件迴圈以及DOM渲染
單執行緒 非同步的設計 js是單執行緒的,這主要是由於web的特殊性,為了大量io操作,也為了避免各類衝突,js需要通過大量同步非同步操作達到頁面效果。事件事件有很多種,觸發 產生事件的方式也有很多,包括 滑鼠 鍵盤等io操作的事件,瀏覽器的一些操作事件 操作dom,或者window繫結產生的事件 ...
傳統的DOM渲染方式
什麼是dom渲染 dom渲染是瀏覽器展現給使用者的dom文件的生成的過程。dom渲染的演化過程 純後端渲染 純前端渲染 服務端的js渲染結合前端渲染 純後端渲染 dom樹的生成完全是在後端伺服器中完成,伺服器的程式會把各種的資料拼成乙個dom樹。採用這樣的渲染方式,就是每乙個頁面中,在chrome中...