延迟加载javascript


Defer loading javascript

所以我已经阅读了一些教程,但我仍然对如何正确地做到这一点感到困惑。

我的网站是oaktreehealth.ca我有太多的javascript文件在折叠上方加载,我想推迟任何不需要立即加载的文件。

我已经阅读了本教程(以及一个很棒的网站!):https://varvy.com/pagespeed/defer-loading-javascript.html

以下是我的问题:

  1. 如何包含多个文件?我只是为他使用的代码创建多个实例吗?或者我可以把它们合为一吗?

  2. 我如何知道应该推迟哪些文件?有些对我来说是显而易见的,有些我不确定。我是否应该反复尝试,看看每次加载的情况?

  3. 我正在使用wordpress,所以这仍然是一个很好的方法吗?或者有其他方法可以将它加载到我的functions.php文档中吗?

  4. 使用此工具:https://varvy.com/tools/js/我可以看到我所有的外部脚本。如果我将它们添加到他使用的defer代码中,我会使用完整路径吗?如何为每个脚本找到它?

  5. 非常感谢!我知道其中有些问题一定很难回答!

的具体说明

<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "defer.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
</script>
  1. 复制上面的代码。

  2. 将代码粘贴到HTML中</body>标记之前(靠近HTML文件底部)。

  3. 将"defer.js"更改为外部js文件的名称。

  4. 请确保文件的路径正确无误。示例:如果您只放了"defer.js",那么文件"defer.js"必须与HTML文件位于同一文件夹中

如果您在这里查看wp_enqueue_script方法:

https://codex.wordpress.org/Function_Reference/wp_enqueue_script

你会看到第三个参数是你加载的脚本所依赖的脚本数组。如果你对所有脚本文件都这样做,WordPress会自动按正确的顺序加载你的JavaScript。

关于问题的#2("我如何知道我应该推迟哪些(javascript)文件?"),请遵循以下步骤:

(1) 使用https://developers.google.com/speed/pagespeed/insights/(2) 单击"消除折叠内容上方的渲染阻塞JavaScript和CSS"下的"显示如何修复"(3) 查找应该延迟或以其他方式处理的脚本的"渲染阻塞JavaScript"列表。

来源:https://varvy.com