【发布时间】:2019-08-22 16:17:50
【问题描述】:
我想推迟加载特定的 Javascript 文件。在 GTMetrix 上,我在“延迟加载 Javascript”类别下获得 14 分。我想推迟加载这个文件:
https://www.youtube.com/yts/jsbin/player_ias-vflRCamp0/en_US/base.js
我尝试在我的主题页脚中插入脚本,就在标签之前。这是我尝试过的:
`<script type="text/javascript">
function parseJSAtOnload() {
var element = document.createElement("script");
element.src = "https://www.youtube.com/yts/jsbin/player_ias-vflRCamp0/en_US/base.js";
document.body.appendChild(element);
}
if (window.addEventListener)
window.addEventListener("load", parseJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", parseJSAtOnload);
else window.onload = parseJSAtOnload;
</script>
`
我也试过了:
`<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "https://www.youtube.com/yts/jsbin/player_ias-vflRCamp0/en_US/base.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>`
这些脚本对 GTMetrix 分数没有任何作用。
我也试过这个:
`<script type="text/javascript">
function parseJSAtOnload() {
var links = ["www.youtube.com/yts/jsbin/player_ias-vflRCamp0/en_US/base.js", "www.youtube.com/yts/jsbin/www-embed-player-vflO7uv3_/www-embed-player.js"],
headElement = document.getElementsByTagName("head")[0],
linkElement, i;
for (i = 0; i < links.length; i++) {
linkElement = document.createElement("script");
linkElement.src = links[i];
headElement.appendChild(linkElement);
}
}
if (window.addEventListener)
window.addEventListener("load", parseJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", parseJSAtOnload);
else window.onload = parseJSAtOnload;
</script>`
此脚本将暂时起作用。我将在 GTMetrix 上测试该页面,它显示 Javascript 已延迟。在瀑布图上,它显示这些脚本已被取消(这里的见解也会受到赞赏?)
当我重新测试以确保它正常工作时,我回到了原来的 14 分。我还能尝试什么,或者我做错了什么?
【问题讨论】:
标签: javascript wordpress youtube