news 2026/5/11 7:34:48

一文大白话讲清楚script加载和执行顺序,包括script标签、defer、async、动态script等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一文大白话讲清楚script加载和执行顺序,包括script标签、defer、async、动态script等

一文讲清楚script加载和执行顺序,包括script标签、defer、async、动态script等

1. 普通script标签

  • 先说原理,一个HTML文档,里面有会有html和script等
  • 浏览器一般是按照顺序解析执行的,比如下面的代码
<div>I`m Html</div><script>console.log('I`m script from script tag with no src')</script><div>I`m html ,too</div><scriptsrc='test.js'></script>/** * test.js * console.log('I`m script from script tag with src') */
  • 浏览器的解析和执行顺序是这样的

  • 也就是说浏览器是按行解析,按行执行的,如果执行到带有外部链接的script标签,就全部加载,然后执行,执行完以后再继续往下走

  • 这样就会有一个问题

  • 如果某一个出在文档中间的script标签很大,执行耗费了很长的时间,那么标签下面的HTML内容就得不到渲染,就会造成页面的卡顿

  • 聪明的你立刻就提出了解决方案,说把所有的script放在页面的底部,是不是就解决了问题,

  • 然而并不完美,以为这样的话,浏览器必须下载解析完所有的HTML内容,才会处理script,如果script里面有对HTML内容的改变,就会明显的延迟和跳动

  • 那应该怎么办呢

  • 先分析现在的问题是什么,是HTML的解析执行和script解析执行在同一个线程里,发生了资源竞争,也就是说我执行的时候你就得停,你执行的时候我就得停

  • 那怎么解决呢,那就让分开,也就是HTML你执行你的,script标签我执行我的,互不干扰,这不是不是好点了,怎么分开了,我们自然的想到了使用异步加载script

  • 那怎么实现异步呢,问得好,script标签有两个完美的特性defer和async可以实现异步

  • 他两都可以实现让script标签跟HTML分开加载和解析执行

  • 那有啥区别呢

2. defer

  • 首先说defer,他可以告诉浏览器,如果你碰到我,不要等待我加载和执行完,你继续往下处理你的HTML,我会在后台自己加载,等你处理完HTML构建出DOM,我再执行
<div>I`m Html</div><scriptdefersrc
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 13:53:08

2025最新!专科生必备8个AI论文平台:开题报告与文献综述全测评

2025最新&#xff01;专科生必备8个AI论文平台&#xff1a;开题报告与文献综述全测评 2025年专科生论文写作工具测评&#xff1a;从功能到体验的全面解析 随着人工智能技术在学术领域的不断渗透&#xff0c;越来越多的专科生开始借助AI工具提升论文写作效率。然而&#xff0c;面…

作者头像 李华
网站建设 2026/5/9 6:44:47

搞砸一次发布赔了6位数后,我才明白平台工程的真正价值。

我永远忘不了那个周五晚上&#xff0c;我满怀信心地按下了发布按钮&#xff0c;然后整个系统就崩了。接下来的十几个小时&#xff0c;就是一场混乱的救火行动。回滚代码、排查日志、紧急修复&#xff0c;整个团队都被拖入了深渊。那一刻我才意识到&#xff0c;我们引以为傲的敏…

作者头像 李华
网站建设 2026/4/30 9:07:36

我们是如何用云端开发,把上线时间从1周压到3分钟的

整个技术圈都在为 AI 疯狂&#xff0c;我们讨论 Copilot 如何让编码效率提升十倍。但这可能只说对了一半&#xff0c;我们用 AI 加速了“写代码”&#xff0c;但作为工程师&#xff0c;我发现自己大量的时间&#xff0c;却消耗在了写代码之外的、那些看不见的“摩擦”上。我认为…

作者头像 李华
网站建设 2026/5/3 4:28:05

兼容性测试的边界困局与云测平台的效能天花板

——面向测试从业者的深度实践洞察 一、兼容性测试的无限边界&#xff1a;被低估的复杂性 在移动互联网与物联网融合的2025年&#xff0c;兼容性测试已从单纯的"设备-系统"适配演变为五维测试矩阵&#xff1a; 硬件拓扑维度&#xff1a;折叠屏机械结构差异、传感器…

作者头像 李华
网站建设 2026/5/9 10:23:26

‌大数据测试专项:数据质量、数据管道与计算逻辑验证

在数据驱动的时代&#xff0c;大数据测试已成为软件测试的核心领域。随着2025年AI和云计算的普及&#xff0c;数据量激增&#xff08;预计全球数据量达200ZB&#xff09;&#xff0c;测试从业者面临前所未有的挑战&#xff1a;如何确保海量数据的准确性、管道的高效性和计算逻辑…

作者头像 李华