为什么要求将JS代码写到页面的最底部?

为什么要求将JS代码写到页面的最底部?

​ 在学习 JavaScript 时,我们了解到 js 代码可以写到绘制页面的 HTML 代码的头部、底部或者标签中等其他位置。但为什么在实际制作项目往往会要求将 js 代码写到底部或者另起一个文件并在最后引入呢?想要搞清楚这个问题我们首先需要明白页面渲染的流程。

页面渲染流程

​ 在这里简单介绍以下页面的渲染流程:浏览器请求到 HTML 和 CSS 内容转成 DOM树 和 CSS树,然后再将这两部分合并成渲染树,之后进行布局,最后将布局绘制到页面上。从这里我们可以了解到,JS代码在渲染树之前就要执行,所以 JS代码的加载、解析和执行势必会阻塞 DOM 的构建,阻塞页面渲染。

防止阻塞的方法

​ 有些小伙伴可能想知道防止阻塞的方法,但实际这种想法是不合理的。我们可以按照上面的渲染流程来设想这么一个场景:在渲染页面的过程中,一边形成渲染树,一边进行页面 DOM 的构建,同时又在使用 JS 修改 DOM;如果不对此进行阻塞,如何保证最后得到的是正确的 DOM?有可能会出现 JS 执行前后 DOM 不一致等问题,所以 JS 必须对 DOM 的构建进行阻塞,从而导致 js 也无法获取在其之后的元素,因为浏览器并未对此进行实质的构建、

​ 以上就是要求将JS代码写到页面的最底部的原因,尽量保证在 DOM 树生成完毕后再去加载 JS,从而得到最终且完整正确的DOM。

​ 这里是万物之恋,我们下次再见了!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值