问答

HTML解析中外链的<script> defer async的执行时间是怎样的

作者:admin 2021-07-05 我要评论

读完红宝书中对这 defer async 描述,我的理解如下: defer:浏览器立即下载,但延迟执行。关于执行时间,HTML 规定是先于 DOMContentLoaded 执行。但现实中,延...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

读完红宝书中对这 defer async 描述,我的理解如下:

defer:浏览器立即下载,但延迟执行。关于执行时间,HTML 规定是先于 DOMContentLoaded 执行。但现实中,延迟但不一定顺序执行,也不一定在DOMContentLoaded 前执行

async:异步下载,一定在 load 之前执行,可能在 DOMContentLoaded 之前或之后执行

我的问题有两个:

  1. defer async 外链的 <script> 到底啥时候执行啊。。。
  2. 理解defer async后,<script>写法的最佳实践是怎样的?
###

一、
(1)有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行异步
(2)有 defer,加载后续文档元素的过程将和 script.js 的加载异步,但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。

二、按照浏览器的解析顺序,script脚本放在</body>之前执行是最好的,这样就不会出现页面堵塞的情况,确保其他资源得到最快速度的加载和解析,至于怎么使用,我觉得defer和async用处不大,看脚本的性质而定吧

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • PHP的use 的 前提是包中的文件需要提前

    PHP的use 的 前提是包中的文件需要提前

  • 为什么分布式项目中需要分布式锁,而普

    为什么分布式项目中需要分布式锁,而普

  • mysql高效查询评论及回复内容,并且分

    mysql高效查询评论及回复内容,并且分

  • tp5 数据库查询  如何进行多对多查询

    tp5 数据库查询 如何进行多对多查询

腾讯云代理商
海外云服务器