html中script脚本的位置

首先需要知道:

html文件是自上而下的执行方式,但引入的css和javascript的顺序有所不同,css引入执行加载时,程序仍然往下执行,而执行到<script>脚本是则中断线程,待该script脚本执行结束之后程序才继续往下执行。

    所以,大部分网上讨论是将script脚本放在<body>之后,那样dom的生成就不会因为长时间执行script脚本而延迟阻塞,加快了页面的加载速度。

    但又不能将所有的script放在body之后,因为有一些页面的效果的实现,是需要预先动态的加载一些js脚本。所以这些脚本应该放在<body>之前。

    其次,不能将需要访问dom元素的js放在body之前,因为此时还没有开始生成dom,所以在body之前的访问dom元素的js会出错,或者无效。

 
  1. <!DOCTYPE html>

  2. <html>

  3. <head></head>

  4. <script type="text/javascript">

  5. document.getElementById("text").innerHTML = "Test script";

  6. </script>

  7.  
  8. <body>

  9. <h1 id="text"></h1>

  10. </body>

  11. </html>

控制台将出现:Uncaught TypeError: Cannot set property 'innerHTML' of null
    at test.html?__hbt=1537172343687:5

将script脚本放在body之后:

 
  1. <!DOCTYPE html>

  2. <html>

  3. <head></head>

  4.  
  5. <body>

  6. <h1 id="text"></h1>

  7. </body>

  8.  
  9. <script type="text/javascript">

  10. document.getElementById("text").innerHTML = "Test script";

  11. </script>

  12. </html>

显示正常。

总结:   参考认为script放置位置的原则“页面效果实现类的js应该放在body之前,动作,交互,事件驱动,需要访问dom属性的js都可以放在body之后”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值