(二)css、js 的加載與執行


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的地址被改變的時候被加載。監聽滑動的事件,當圖片進入可視區域的時候才去加載。

  預加載:與懶加載相反,預加載靜態資源使用之前提前進行請求。直接從緩存中進行加載,不需要發送請求。

   懶加載實踐:

   

  

預加載實踐:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM