為什么要把js放到body的最下面?我們的項目都是放到head中的呢。是怕頁面未加載完,js方法中如果引用頁面元素,會報錯嗎?

Kevin_Zhao
2014-11-04
2 回答
舉報
0/150
提交
取消
2014-11-04
這里面主要涉及的是加載順序、js是單線程。
由于瀏覽器解析是自上而下加載解析,如果一個很大的js文件放在head里面,由于js是單線程,那么瀏覽器會一直解析,而無法加載解析后面的dom tree,以至于頁面出現(xiàn)空白,如果放在body最下面,這樣dom tree會先加載解析,呈現(xiàn)出頁面再加載解析js里面的內(nèi)容,這樣用戶體驗會更好。
如果js放在head里面,引用了某個dom,但是這時你還沒加載dom tree,會報錯,可以采用 window.onload = function(){}這樣來解決,或者給js設置defer 或者 async來讓js異步加載,這樣就不會報錯了。
2014-11-05
可能異步加載處理更好些吧。謝謝回答。