我知道 document.ready 和 window.load 事件之间的区别。现在为了提高我网站的性能,我计划推迟加载 javascript。我见过很多延迟加载内容的例子:
- 注入
<script src="...">
并<link rel="stylesheet" href="...">
在 document.ready 上 - 注入
<script src="...">
并<link rel="stylesheet" href="...">
在 window.load 上 - 在 document.ready 被触发后注入
<script src="...">
和<link rel="stylesheet" href="...">
几秒钟 - 在 window.load 被触发后注入
<script src="...">
和<link rel="stylesheet" href="...">
几秒钟
我的第一个问题是这些方法中的哪一种更可取。
我的第二个问题是,我想知道当我使用方法 1 时到底发生了什么。如果我的文档在 HTML 源代码中定义了此内容:
<!-- head -->
<link>
<script>
<!-- body -->
在 document.ready 我注入这些额外的标签:
<!-- head -->
<link>
<script>
<link class="lazyload">
<script class="lazyload">
<!-- body -->
<img><img><img><img><img>
我想知道浏览器到底会做什么:
- 它什么时候会触发 document.ready 事件
- 它将按什么顺序下载文件
- 尝试下载注入的文件时是否会阻止页面