当前位置: 首页 > article >正文

【HTML】script标签asyncdefer

<script> 标签中的 deferasync 属性是用来控制外部脚本加载和执行时机的重要机制,它们可以帮助优化网页加载速度和用户体验。

async 属性

async 表示异步加载脚本。当 <script> 标签包含 async 属性时:

  • 脚本下载和其他资源(如 HTML、CSS 和其他脚本)的下载同时进行,不会阻塞页面渲染。
  • 脚本在下载完成后立即执行,不论文档解析是否完成。
  • 多个带有 async 的脚本之间没有执行顺序保证,哪个先加载完就先执行。
  • 如果希望脚本在 DOMContentLoaded 事件之前执行,可以将 async 放在 <body> 结束标签前。
示例
<script src="example.js" async></script>

defer 属性

defer 表示延迟加载脚本直到文档解析完毕(DOMContentLoaded)。当 <script> 标签包含 defer 属性时:

  • 脚本同样异步下载,不会阻塞页面渲染。
  • 所有的 defer 脚本都会等到文档解析完成后,在DOMContentLoaded触发前再按它们在源代码中的顺序依次执行。(所以会阻塞DOMContentLoaded的触发)
  • 这意味着你可以依赖于前面的 defer 脚本来执行后续的脚本,保持了执行顺序的一致性。
示例
<script src="first.js" defer></script>

<script src="second.js" defer></script>

总结

  • 使用 async 更适合那些不影响页面初始渲染且相互间无依赖关系的脚本。
  • 使用 defer 更适合那些需要按照特定顺序执行的脚本,或者脚本依赖于完整的 DOM 树。

注意事项

  • 如果一个 <script> 标签同时包含 asyncdefer,大多数浏览器会忽略 async 并仅保留 defer 的效果。
  • 在使用 asyncdefer 时,确保脚本的逻辑能够处理非同步执行带来的影响,比如可能需要等待 DOM 元素可用才能操作它们。

通过合理利用这两个属性,可以显著改善网站的加载时间和用户体验。


http://www.kler.cn/news/294677.html

相关文章:

  • 第十五届蓝桥杯青少组省赛成绩查询及国赛考试安排
  • 如何实现加密功能
  • 内置消息支持
  • 【电子通识】洁净度等级划分及等级标准
  • macOS 安装 Homebrew
  • 电子发射与气体导电
  • 用ceres实现lio-sam平面点匹配
  • SVD降维
  • 网络安全威胁与防范
  • Java-数据结构-链表-LinkedList(二)|ू・ω・` )
  • 【牛站 / USACO2007】
  • 图欧科技-IMYAI智能助手24年8月更新日志大汇总(含史诗级更新)
  • 如何在SQL Server中恢复多个数据库?
  • C# 获取当前鼠标位置
  • ansible--yaml
  • SOMEIP_ETS_092: SD_Check_Reaction_to_a_Subscribe_with_ttl_0
  • css前段知识点分享
  • pytest运行方式及前置后置封装详解
  • Docker 进阶构建:镜像、网络与仓库管理
  • mariadb容器
  • 8阶段项目:五子棋(附带源码)
  • 服务器数据恢复—infortrend存储中RAID6数据恢复案例
  • 资料分析系统课-刘文超老师
  • ​T​P​三​面​
  • SIGMOD-24概览Part7: Industry Session (Graph Data Management)
  • Wni11 下 WSL 安装 CentOS
  • Datawhale X 李宏毅苹果书 AI夏令营-深度学习进阶task3:批量归一化
  • 牛客小白月赛100(A,B,C,D,E,F三元环计数)
  • 【手撕数据结构】二叉树的性质
  • 香橙派修改MAC