JavaScript文件放在HTML文档的哪个位置?


浏览器渲染页面前会解析HTML脚本构建DOM树,在这个过程中,如果遇到一个脚本(script),就会停下来执行这个脚本,如果这个脚本是引用的外部资源,必须停下来等待这个资源的下载和执行,然后继续解析HTML

head 中的JavaScript文件在页面渲染前执行,会阻塞渲染。

哪些JS脚本文件放在head中?

对于需要在DOM加载之前执行的JavaScript脚本(同步执行),直接将这些脚本放在<head>中,并确保这些脚本很小,并且执行速度很快(不通过外部引用,因为会增加网络请求),尽量减少浏览器渲染的阻塞。

怎么解决加载JS文件时的页面渲染阻塞?

<script>标签的asyncdefer属性让JavaScript文件异步加载,使加载不阻塞HTML的解析。

  • async:加载完就立即执行,执行的过程中会阻塞HTML的解析,执行不保证顺序。
  • defer:在HTML文档解析渲染完之后(DOMContentLoaded之前)执行,按照script标签的先后顺序执行。

body中的JavaScript文件是在页面加载时执行。

js位置.png


MandyShen
166 声望21 粉丝