javascript中数据访问性能优化简析
我们一般写代码都会考虑代码的可读性、可扩展性及重要的是浏览器的解析。减少代码数量提高代码性能加载速度,是我们每个coder所追求的。在javascript中,我们有时必须考虑的是如何确定数据的存储位置,以获取最佳的读写效率,数据存储的位置,关系到代码执行过程中数据被检索的速度,数据的存储位置在很大程度会影响其读取速度。
javascript中有4种基本的数据存取位置:直接量、变量、数组元素、对象才成员
每种数据存储的位置都有不同的读写消耗。一般的情况下,从一个直接量和局部变量中存取数据的性能差异很小,微不足道。但访问数组元素和对象成员的代价比较高点,这个需要根据浏览器来决定代价的大小。
标识符的解析也需要消耗计算机性能,在运行的作用域中,一个标识符所在位置越深,其读写的速度也会越慢,因此,函数中,读写局部变量是最快的,而读写全局变量是最慢的,因为全局变量总是存在运行期的作用域链环境的最末端。所以在没有优化javascript引擎的浏览器中,我们尽可能用局部变量,如果某个跨作用域的值在函数中被引用一次以上,我们可以把它存储到一个局部变量里,如下面的例子
function initUI(){
var doc = document,
bd = doc.body,
links= doc.getElementsByTagName(‘a‘),
i = 0,
len = links.length;
while(i<len){
update(links[i++]);
}
doc.getElementById(‘btn‘).onclick=function(){
};
bd.className = ‘active‘;
}
document对象存储到局部变量doc,引用三次降低到一次,虽然提高性能效果不是很明显,但是,如果document全局变量引用很次,性能效果的改善会很明显。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。