所以我已经阅读了一些教程,但我仍然对如何做到这一点感到困惑。
我的网站是oaktreehealth.ca 我有太多的javascript文件加载到首屏,我想推迟任何不需要立即加载。
我已经阅读了本教程(以及一个很棒的网站!):https://varvy.com/pagespeed/defer-loading-javascript.html
以下是我的问题:
如何包含多个文件?我只是创建他使用的代码的多个实例吗?或者我可以将它们合并为一个吗?
我如何知道应该推迟哪些文件?有些是显而易见的,有些我不确定。我应该试错,看看它每次加载的方式吗?
我正在使用wordpress,所以这仍然是一个很好的方法吗?或者还有另一种方法可以将其加载到我的functions.php doc中吗?
使用此工具:https://varvy.com/tools/js/我可以看到所有外部脚本。如果我在他使用的延迟代码中添加它们,我是否使用完整路径?如何为每个脚本找到它?
非常感谢你!我知道其中一些必须是非常无礼的问题!
答案 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>
复制上面的代码。
将代码粘贴到</body>
标记之前的HTML中(靠近HTML文件的底部)。
将“defer.js”更改为外部JS文件的名称。
确保文件的路径正确无误。示例:如果您只是输入“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;对于应该推迟或以其他方式解决的脚本。