我在html的部分中有以下代码,并且想知道如何清理它以优化加载。
<script type="text/javascript">
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "js/jquery.orbit-1.2.3.min.js";
document.body.appendChild(element);
}
function downloadJSAtOnload() {
var element = document.createElement("script");
element.src = "http://code.jquery.com/jquery-latest.min.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>
答案 0 :(得分:2)
如果您的目标是允许在加载脚本之前显示页面,那么更多更容易:只需将脚本标记(按适当的顺序)放在body
的结尾,就在结束</body>
标记之前:
<!-- ...content of page... -->
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="js/jquery.orbit-1.2.3.min.js"></script>
</body>
</html>
load
对象上的window
事件在页面加载过程后期发生非常,在所有其他资源完全加载(或加载失败)之后。所以所有图像,包括前景和背景等。
通过将脚本放在正文的末尾,您可以在合理的时间将它们放入浏览器的下载队列中,但不会让浏览器在执行初始页面呈现之前等待脚本到达。您也可以获得订购(您也可以使用defer
元素上的script
属性获得该订单,但并非所有浏览器都支持该订单。更多:YUI Best Practices for Speeding Up your Website
您在评论中询问何时使用load
事件进行脚本加载。我的回答是:我没有理由这样做。