脚本加载优化方法
2018-06-24 00:25:34来源:未知 阅读 ()
本文地址:http://www.cnblogs.com/veinyin/p/7637407.html
如果我们只是单纯在 head 或 body 中引用脚本,由于是否会更改DOM是未知的, 所以脚本在下载执行的过程中会完全阻塞页面的渲染。
若脚本在 head 或 body 中间,有很大可能会出现空白页面,也无法进行用户交互,用户体验很差。
即便是可以并行下载 javascript 文件,但这个下载过程中会影响图片等资源的下载。
所以我们首先需要做的是:
把 script 标签放在 body 里最底部;
因为进行 HTTP 请求时有额外的性能开销,如三次握手,所以还要尽量减少 HTTP 请求:
把 javascript 文件合并成一个;
在一个请求里加载多个 javascript 文件
但是以上并没有解决我们的问题,一个大的 javascript 文件会下载执行脚长时间,在这段时间里,浏览器无法做其他事情。这就需要无阻塞脚本,也就是在页面加载完成后才加载 javascript 代码,即在 window对象 的 load 事件触发之后再下载脚本。
1 延迟脚本
defer:首先我们要确定该脚本不会改变DOM,因为加上就是告诉浏览器这个脚本不会改变 DOM,可以在页面加载完成后再执行。 给 script 标签加上这个属性后,这个文件就可以跟其他资源并行下载了。IE 从 IE10 开始不支持 defer
async:与 defer 区别在于下载完成后就执行,但 defer 要等到页面加载完成后才执行
2 动态脚本
也就是动态创建一个 script 标签,在合适的时机插入到页面中,我们可以这种方法来根据需要加载文件,也能指定脚本加载顺序。
3 XMLHttpRequest脚本注入
就是通过 XHR 获取脚本 然后在回调函数中创建 script 标签并插入到页面中
推荐方法
先添加动态加载所需的脚本,尽可能精简,其中添加一个加载脚本的函数
在 script 标签中调用函数加载其他脚本
当然,也有一些懒加载库能使用。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- JS动态加载脚本的方法 2020-02-14
- JS获取当前地理位置的方法 2020-01-17
- IE8中使用javascript动态加载CSS的解决方法 2019-12-02
- 在HTML页面加载完毕后运行某个js的实现方法 2019-11-25
- javascript网页关闭时提醒效果脚本 2019-11-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash