js 提高性能
尽量少访问dom,尽量减少标记
访问dom的方式会对脚本性能产生非常大的影响,只要是查询dom中的某些元素,浏览器都会搜索整个dom树,从中查找可能匹配的元素。
- 在需要对一个dom对象数组循环时,只调用一次查询dom的方法。
var aDomArr = document.getElementsByTagName('a');
if(aDomArr.length > 0){
for(var i=0; i< aDomArr.length; i++){
aDomArr[0].href='www.baidu.com';
}
}
- 在多个函数都会取得一组类似元素的情况下,可以考虑重构代码,把搜索结果保存到一个变量里,或者把一组元素直接以参数形式传递给函数。
- 减少不必要的标记,如
<div></div>
;过多不必要的元素只会增加dom树的规模,进而增加遍历dom树查找某些元素的时间。
合并和放置脚本
一般来说,根据HTTP规范,浏览器每次从同一域名中最多只能同时下载两个文件。而在下载脚本期间,浏览器不会下载其他任何文件,即使是来自不同域名的文件也不会下载,所有其他资源都要等脚本加载完毕后才能下载。
- 使用外部脚本文件,浏览器能对站点中的多个页面重用缓存过的相同脚本。
- 能合并在一起的js代码,就尽量放在同一个js文件中,减少加载页面时发送的请求数量。
- 把所有
<script>
标签都放在文档的末尾,</body>
标签之前,就可以让页面变得更快。
用工具压缩脚本
通常,为了与有可读性的js文件区分开来,压缩后的js脚本的文件名要加上min
。网上有很多在线压缩js脚本的网站。