2 回答
已采納

慕神7306085
TA貢獻9條經驗 獲得超23個贊
其實原因很簡單,以webkit為例,當初我在把webkit用的libxml換成expat的時候就發現webkit有個怪癖,當解析到js標簽的時候,會把libxml拋出的回調和數據緩存起來,緩存完所有拋出的數據后再去執行js的東西,執行完了再接著拿出緩存,去解析緩存里的東西。這樣對于webkit做多線程解析html標簽優化是不太友好的,也會增加額外的緩存開銷,還會解析著的時候趕緊去排版。排版是很耗時的,還會在執行js的時候顯示個不完整甚至白版頁面。后來我想明白了,這也是為了讓js能在任何時機取到控制權,甚至在解析標簽到一半的時候,總會有很少的需求會必須在這種時機拿到控制權吧。

woshiajuana
TA貢獻211條經驗 獲得超152個贊
js不完全是一定要放在頁面底部的
盡量把可以放在底部的js放在底部,
因為加載js的時候會阻塞DOM渲染,
如果大量的js放在頭部,用戶打開網頁時,就會看到一片白色,要等待js加載完成后,才能繼續渲染DOM,用戶才能看到頁面內容。所以為了優化用戶體驗,一般把可以放在底部的js放在底部。
至于那些不能放在底部的js就不要放在底部:舉例,一個網站的頭部的元素標簽他是由js輸出的,那么這個js就不能放在底部,不然的話,你會發現渲染內容完成后,網站頭部會慢半拍出現,這個也是不好的用戶體驗
添加回答
舉報
0/150
提交
取消