为了账号安全,请及时绑定邮箱和手机立即绑定

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

正在回答

2 回答

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

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


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

11 回复 有任何疑惑可以回复我~
#1

Kevin_Zhao 提问者

可能异步加载处理更好些吧。谢谢回答。
2014-11-05 回复 有任何疑惑可以回复我~
#2

purple_yao

真详细。。。赞。。。
2014-11-05 回复 有任何疑惑可以回复我~
#3

pangqianyi

赞一个
2015-01-05 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信