1. defer 属性
在<script> 元素中设置 defer 属性,等于告诉浏览器立即下载,但延迟执行。defer属性只适用于外部脚本文件
<!DOCTYPE html>
<html>
<head>
<script src="test1.js" defer="defer"></script>
<script src="test2.js" defer="defer"></script>
</head>
<body>
<!-- 这里放内容 -->
</body>
2. async 属性
<head>
<script src="test1.js" async></script>
<script src="test2.js" async></script>
</head>
3.动态创建DOM方式
//这些代码应被放置在</body>标签前(接近HTML文件底部)
<script type="text/javascript">
function downloadJSAtOnload() {
varelement = 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>
4.使用jQuery的getScript()方法
$.getScript("outer.js",function(){//回调函数,成功获取文件后执行的函数
console.log("脚本加载完成")
});
5.使用setTimeout延迟方法
6.让JS最后加载
把js外部引入的文件放到页面底部,来让js最后引入,从而加快页面加载速度
async vs defer
async属性的脚本都在它下载结束之后立刻执行,但执行顺序不能控制,先下载完的先执行
defer属性的脚本都是在html解析完毕之后,按照原本的顺序执行
网友评论