几个首要特性:
- script标签(不带
defer
或async
属性)的会阻止文档渲染。相关脚本会立即下载并执行。 document.currentScript
可以获得当前正在运行的脚本(Chrome 29+, FF4+)- 脚本顺序再默认情况下和script标签出现的顺序一致
有defer
或async
属性(defer和
async没有完全兼容所有浏览器
)
- 仅有async属性,脚本会异步执行
- 仅有defer属性,脚本会在文档解析完毕后执行
- 两个属性都没有,脚本会被同步下载并执行(顺序下载,顺序执行),期间会柱塞文档解析
如下示例A1,A2,A3
<!-- HTML code --> <script src="https://snipt.net/raw/A1_7b08744009c450e07c0bfc1d606fc72e/"></script> <script src="https://snipt.net/raw/A2_a2e8c05c1f6fc0e47d259aa899304e89/"></script> <script src="https://snipt.net/raw/A3_4fab3017d3d46cbfc4bbd88aab006650/"></script>
当第二个文件A2的尺寸远大于另外两个文件,A1下载执行不受影响,A3在A2下载执行完成之后下载
当<script>标签下载执行过程中,HTML停止解析(也停止渲染)
时间: 2024-10-17 01:33:57