延迟加载js-how

Defer loading of js how?

本文关键字:js-how 延迟加载      更新时间:2023-09-26

我在页面底部引用了以下js脚本:

<script src="http://example.com/test.js" type="text/javascript"></script>

Google PageSpeed建议推迟加载这个js。我不太明白该怎么做,也不知道会有什么影响。有人能解释一下吗?

将属性defer添加到<script>标签中即可。例如:

<script src="http://example.com/test.js" type="text/javascript" defer></script>

这个想法是,文件中的脚本只有在整个页面完成加载后才能执行,而不是浏览器解析<script>标签后立即执行脚本的标准方式(这可能会延迟<script>标签后代码的呈现)

您可以使用async属性

<script src="http://example.com/test.js" type="text/javascript" async></script>

注:

async属性在Internet Explorer 10、Firefox、Opera、Chrome和Safari中都受支持。

以下是您想要做的:http://davidwalsh.name/html5-async

<script async src="siteScript.js" onload="myInit()"></script>

<script defer src="siteScript.js" onload="myInit()"></script>

这些方法都不能真正保证执行。查看这篇关于如何确保外部javascript执行真正被解除约束的好文章
feedthebot deffer执行javascript

由Patrick Sexton 撰写

async在一个js与另一个js之间存在依赖关系时可能不是一个好的选择。例如。file1.js依赖于file2.js,而file1.js首先加载,启动执行但失败,并由于尚未加载的file2.js中的某些依赖关系而引发错误。