浅谈前端性能优化(四)——将script放在底部
来源:互联网 发布:js离开页面事件 编辑:程序博客网 时间:2024/04/29 16:10
script的两个属性——async和defer:
① 没有defer或async,浏览器会立即加载并执行指定的JS脚本,不等待后续文档元素,读到JS脚本就加载并执行。
② 有async,加载后续文档元素的过程将和JS的加载与执行并行进行(异步)。
③ 有defer,加载后续文档元素的过程将和JS的加载并行进行(异步),但JS的执行要在所有文档元素解析完成之后,DOMContentLoaded 事件触发之前完成。
二者的详细对比请见:http://blog.csdn.net/zhouziyu2011/article/details/60149590
script放在底部的原理:
script没有async和defer时,JS文件将在下载后立即执行。这种情况下,script放在顶部会阻塞页面呈现,在网速慢的情况下会导致“白屏”,直到脚本下载完毕才继续呈现页面。因此,script放在底部可以让页面尽快呈现。
script全部放在head中会出现的问题:
在需要操作body中的某元素时,可能找不到该元素,因此,若要放在head中,一般需要绑定一个监听windows.onload=function(){ ... },当文档全部解析完之后再执行script代码。
测试实例:
测试demo:http://stevesouders.com/hpws/move-scripts.php
页面中嵌入2个iframe,左边是script放在顶部的情况,右边是script放在底部的情况。
1 0
- 浅谈前端性能优化(四)——将script放在底部
- 浅谈前端性能优化(三)——将CSS文件放在顶部
- 浅谈前端性能优化(七)——图像优化
- 浅谈前端性能优化(八)——cookie优化
- 浅谈前端性能优化
- 浅谈前端性能优化
- 浅谈前端性能优化(九)——DNS解析优化
- 前端性能优化四:
- Android将ButtonBar放在屏幕底部
- Android将ButtonBar放在屏幕底部
- Android将ButtonBar放在屏幕底部
- 怎么将tabHost放在底部显示
- 将Tablayout放在布局的底部
- 45. 将脚本放在底部(6)
- 《高性能网站建设指南》阅读笔记_规则6- 将脚本放在底部
- 浅谈前端性能优化(一)——Expires和Cache-Control
- 浅谈前端性能优化(二)——对HTTP传输进行压缩
- 浅谈前端性能优化(五)——减少HTTP请求数
- 程序员们的爱情表白书
- 【LeetCode】Arranging Coins 解题报告
- 整数的二进制表示中有多少个1
- A Survey: Visual Place Recognition 视觉场景识别的一篇调研
- 转-----linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
- 浅谈前端性能优化(四)——将script放在底部
- 【小练习01】CSS--PS提示框制作
- Java多线程/并发24、Countdownlatch应用以及与CyclicBarrier的区别
- c++ 将lambda表达式作为参数传递
- Docker实践5:搭建redmine
- Java并发编程
- CSS伪类选择器
- 二叉树的创建与遍历(递归)
- mysql去掉数据中的换行符