问答详情
源自:1-3 如何开始使用Bootstrap

为什么要把js放到body的最下面?我们的项目都是放到head中的呢。是怕页面未加载完,js方法中如果引用页面元素,会报错吗?

提问者:Kevin_Zhao 2014-11-04 11:51

个回答

  • Tracy_
    2014-11-04 12:38:49
    已采纳

    这里面主要涉及的是加载顺序、js是单线程。

    由于浏览器解析是自上而下加载解析,如果一个很大的js文件放在head里面,由于js是单线程,那么浏览器会一直解析,而无法加载解析后面的dom tree,以至于页面出现空白,如果放在body最下面,这样dom tree会先加载解析,呈现出页面再加载解析js里面的内容,这样用户体验会更好。


    如果js放在head里面,引用了某个dom,但是这时你还没加载dom tree,会报错,可以采用 window.onload = function(){}这样来解决,或者给js设置defer 或者 async来让js异步加载,这样就不会报错了。

  • Kevin_Zhao
    2014-11-05 09:56:52

    可能异步加载处理更好些吧。谢谢回答。