JavaScript 脚本下载解释执行阻塞页面优化

优化原因:在前端页面加载过程中,JavaScript代码的下载、解释和执行会阻塞页面的其他执行(此时页面会一片空白),浏览器在遇到<body>标签才开始呈现内容。

优化建议:

1、把JavaScript引用放在<body>元素中内容的后面:

<!DOCTYPE html>
<html>
<head>
<title>Example HTML Page</title>
</head>
<body>
<!-- 这里放内容 -->
<script type="text/javascript" src="example1.js"></script>
<script type="text/javascript" src="example2.js"></script>
</body>
</html>

2、使用defer属性(只适合引用外部脚本文件,不能保证按顺序执行脚本,建议只有一个脚本引用使用defer属性),延迟脚本,js脚本会被延迟到整个页面都解释完毕后(浏览器遇到</html>标签后)再运行:

<!DOCTYPE html>
<html>
<head>
<title>Example HTML Page</title>
<script type="text/javascript" defer="defer" src="example1.js"></script>
<script type="text/javascript" defer="defer" src="example2.js"></script>
</head>
<body>
<!-- 这里放内容 -->
</body>
</html>

3、使用async属性(只适合引用外部脚本文件,不能保证按顺序执行脚本,请确保脚本之间不含依赖),异步脚本,异步脚本一定会在页面的load事件前执行:

<!DOCTYPE html>
<html>
<head>
<title>Example HTML Page</title>
<script type="text/javascript" async src="example1.js"></script>
<script type="text/javascript" async src="example2.js"></script>
</head>
<body>
<!-- 这里放内容 -->
</body>
</html>

注意:使用defer属性引入的脚本会比使用async属性引入的脚本先执行。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值