news 2026/3/2 19:53:23

一文大白话讲清楚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/2/23 23:35:00

学长亲荐10个AI论文软件,自考论文格式规范轻松搞定!

学长亲荐10个AI论文软件&#xff0c;自考论文格式规范轻松搞定&#xff01; 自考论文写作的“隐形助手”&#xff0c;你真的了解吗&#xff1f; 对于许多自考学生来说&#xff0c;论文写作不仅是学术能力的考验&#xff0c;更是一场与时间、焦虑和格式规范的拉锯战。在AI技术迅…

作者头像 李华
网站建设 2026/2/27 19:52:44

【毕业设计】基于Java的网上宠物店管理系统基于Java技术的智慧宠物店管理系统设计(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/25 17:22:17

基于纳米微粒激发平面波的米氏散射FDTD仿真模拟与验证

基于纳米微粒激发平面波的米氏散射FDTD仿真模拟 微纳光学 【案例内容】 本案例展示了一个基于纳米粒子激发平面波的米氏散射仿真模型&#xff08;mie scattering&#xff09;&#xff0c;计算其散射和吸收截面、局域场增强和远场散射分布&#xff0c;同时将截面和远场结果与解析…

作者头像 李华
网站建设 2026/2/25 5:15:13

以茶叶取小名,萌到想贴贴[特殊字符]

以茶叶取小名&#xff0c;萌到想贴贴&#x1f923;【茶泡】&#x1f375;&#xff1a;开水一冲就冒泡&#xff0c;软萌到心坎里【小茗】&#x1f331;&#xff1a;茗茶本茶&#xff0c;喊着顺口还显乖【茶糯】&#x1f35a;&#xff1a;像茶泡饭一样软糯&#xff0c;听着就好ru…

作者头像 李华
网站建设 2026/3/1 6:33:39

8个降AI率工具推荐,研究生必备神器!

8个降AI率工具推荐&#xff0c;研究生必备神器&#xff01; AI降重工具&#xff1a;研究生论文写作的得力助手 随着人工智能技术的快速发展&#xff0c;越来越多的研究生在撰写论文时会使用AI辅助工具来提升效率。然而&#xff0c;AI生成的内容往往带有明显的“AI痕迹”&#x…

作者头像 李华
网站建设 2026/2/28 6:55:05

OpenAI 格式 API 通用接入说明(含 Cherry Studio 配置教程)

OpenAI 格式 API 通用接入说明&#xff08;含 Cherry Studio 配置教程&#xff09; 关键词&#xff1a;OpenAI API、Base_URL 配置、API Key、模型接入、Cherry Studio 教程、AI 客户端配置 最近在折腾一些 AI 应用和本地客户端时&#xff0c;发现很多同学在 API 接入阶段就卡住…

作者头像 李华