js是阻塞頁面的加載,會影響頁面加載的速度,js文件的大小和算法的復雜程度影響著頁面的加載速度。瀏覽器在下載和執行腳本時出現阻塞的原因在于,腳本可能會改變頁面或javascript的命名空間,它們對后面內容造成影響。一個典型的例子就是在頁面中使用document.write()。
瀏覽器從服務器接收到html代碼,就開始解析html,根據html的代碼會自上向下進行構建,同時構建渲染樹,如果遇到js文件加載執行,將會阻塞DOM樹的構建,遇到css文件,又會阻塞渲染樹的構建。
如今人們更喜愛相對于呈現用戶面前的“快”網頁,即呈現出來的時間越短,內容也不是很糟糕,更受人歡迎,如果一個網頁加載沒有反應,時間超過兩秒甚至更多,對于用戶來說,這個網頁是差勁的
所以,script標簽應該放在</body>標簽的前面,因為,放在body標簽后會避免出現網頁加載空白的情況,可持續的給用戶提供視覺反饋,同時在有些情況下,會降低錯誤的發生。頁面渲染的時候,相對于其他的圖片或css來說js是阻塞的,所以等頁面的渲染樹成行以后再引入js就可以避免白屏現象.
css標簽應放在<head></head>標簽之間,如果放在</body>標簽的前面,當DOM樹構建完成,渲染樹開始構建,等構建完成,瀏覽器需要渲染整個頁面,其實可以邊渲染便構建,減少資源的浪費