你可能知道,Google PageSpeed Insights希望你推迟你的javascript。
谷歌本身suggests a solution推迟你的代码:
<script type="text/javascript">
function downloadJSAtOnload()
{
var element = document.createElement("script");
element.src = "deferredfunctions.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>
当然是一个很好的解决方案,但它远非真实情况(包括许多脚本,执行代码等等)
从一个例子开始:
<html>
<head>
</head>
<body>
<script type='text/javascript' src='...'></script>
<script type='text/javascript' src='...'></script>
<script type='text/javascript' src='...'></script>
<script type='text/javascript'><!--
// some code
$(document).ready(function(){
// code to execute when the page is ready
});
--></script>
</body>
</html>
问题是:如何将Google建议应用于上述示例?
如果您让downloadJSatOnload
将几个脚本元素附加到页面,然后调用通常放在$(document).ready(function () { ... });
中的代码,那么Google示例可以用于多个脚本。该代码可以显式调用,也可以是下载的最后一个文件。