(二)css、js 的載入與執行
阿新 • • 發佈:2018-12-19
1:一個網站在瀏覽器端是如何進行渲染的呢?
2: HTML渲染過程的一些特點
(1)順序執行、併發載入
順序執行:運用詞法分析能力從頭開始順序解析,
併發載入:引入的外部資源,css,js,可以進行優化,單個域名併發載入有限,CDN上設定三到四個。
(2)是否阻塞 (css載入是否阻塞js載入,==)
css head中阻塞頁面的渲染 避免頁面的閃動:在CSS載入完後,DOM樹有樣式的
css阻塞js的執行 css載入完會會js阻塞,js可能對css樣式操作
css不阻塞外部指令碼的載入 預資源載入器
js阻塞:
直接引入的js阻塞頁面的渲染 (onload事件)
js不阻塞資源的載入
js順序執行,阻塞後續js邏輯的執行(單執行緒)
(3)依賴關係
頁面渲染依賴於css的載入
js的執行順序的依賴關係
js邏輯對於dom節點的依賴關係
(4)引入方式
Css:Link,import, 直接引入 defer async非同步動態引入js
載入和執行的一些優化點:
(1)css 樣式表置頂
(2)用 link 代替 import
(3)js 指令碼置底
(4)合理使用 js 的非同步載入能力
3:懶載入和預載入
懶載入:(1)圖片進入可視區域之後請求資源,對於電商,頁面很長的場景,減少無效的資源載入(單頁應用,觀看的時候才去載入),(2)併發載入的資源過多會影響網站的正常使用。
具體實現懶載入:圖片的src的地址被改變的時候被載入。監聽滑動的事件,當圖片進入可視區域的時候才去載入。
預載入:與懶載入相反,預載入靜態資源使用之前提前進行請求。直接從快取中進行載入,不需要傳送請求。
懶載入實踐:
預載入實踐: