推迟加载javascript

时间:2015-11-04 20:50:40

标签: javascript php jquery wordpress optimization

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

我的网站是oaktreehealth.ca 我有太多的javascript文件加载到首屏,我想推迟任何不需要立即加载。

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

以下是我的问题:

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

  2. 我如何知道应该推迟哪些文件?有些是显而易见的,有些我不确定。我应该试错,看看它每次加载的方式吗?

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

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

  5. 非常感谢你!我知道其中一些必须是非常无礼的问题!

3 个答案:

答案 0 :(得分:2)

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

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

您将看到第三个参数是您要加载的脚本所依赖的脚本数组。如果对所有脚本文件执行此操作,WordPress将以正确的顺序自动加载JavaScript。

答案 1 :(得分:1)

具体说明

<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. 将代码粘贴到</body>标记之前的HTML中(靠近HTML文件的底部)。

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

  4. 确保文件的路径正确无误。示例:如果您只是输入“defer.js”,则文件“defer.js”必须与HTML文件位于同一文件夹中

答案 2 :(得分:0)

关于问题的#2(&#34;我如何知道我应该推迟的(javascript)文件?&#34;),请按照以下步骤操作:

(1)使用https://developers.google.com/speed/pagespeed/insights/ (2)点击&#34;显示如何修复&#34;在&#34;消除渲染阻止JavaScript和CSS的首要内容&#34; (3)查找&#34;渲染阻止JavaScript&#34;对于应该推迟或以其他方式解决的脚本。

来源:https://varvy.com