【转】巧用局部变量提升javascript性能
2014-07-02 22:42
183 查看
转自:http://www.jb51.net/article/47219.htm
巧用局部变量可以有效提升javascript性能,下面有个不错的示例,大家可以参考下
javascript中一个标识符所在的位置越深,它的读写速度也越慢。因此,函数中读写局部变量总是最快的,而读写全局变量通常是最慢的。一个好的经验法则是:如果某个跨作用域的值在函数中被引用一次以上,那么就把它存储到局部变量里。
例如:
复制代码代码如下:
<!-- 优化前 -->
<script type="text/javascript">
function initUI () {
var bd = document.body,
links = document.getElementByTagName("a"),
i=0,
len=links.length;
while(i < len){
update(links[i++]);
}
document.getElementById("go-btn").onclick = function(){
start();
}
bd.className = "active";
}
</script>
该函数引用了三次document,而document是个全局对象。搜索该变量的过程必须遍历整个作用域链接,直到最后在全局变量对象中找到。你可以通过以下方法减少对性能的影响:先将全局变量的引用存储在一个局部变量中,然后使用这个局部变量代替全局变量。
例如:
复制代码代码如下:
<!-- 优化后 -->
<script type="text/javascript">
function initUI () {
var doc=document,
bd = doc.body,
links = doc.getElementByTagName("a"),
i=0,
len=links.length;
while(i < len){
update(links[i++]);
}
doc.getElementById("go-btn").onclick = function(){
start();
}
bd.className = "active";
}
</script>
巧用局部变量可以有效提升javascript性能,下面有个不错的示例,大家可以参考下
javascript中一个标识符所在的位置越深,它的读写速度也越慢。因此,函数中读写局部变量总是最快的,而读写全局变量通常是最慢的。一个好的经验法则是:如果某个跨作用域的值在函数中被引用一次以上,那么就把它存储到局部变量里。
例如:
复制代码代码如下:
<!-- 优化前 -->
<script type="text/javascript">
function initUI () {
var bd = document.body,
links = document.getElementByTagName("a"),
i=0,
len=links.length;
while(i < len){
update(links[i++]);
}
document.getElementById("go-btn").onclick = function(){
start();
}
bd.className = "active";
}
</script>
该函数引用了三次document,而document是个全局对象。搜索该变量的过程必须遍历整个作用域链接,直到最后在全局变量对象中找到。你可以通过以下方法减少对性能的影响:先将全局变量的引用存储在一个局部变量中,然后使用这个局部变量代替全局变量。
例如:
复制代码代码如下:
<!-- 优化后 -->
<script type="text/javascript">
function initUI () {
var doc=document,
bd = doc.body,
links = doc.getElementByTagName("a"),
i=0,
len=links.length;
while(i < len){
update(links[i++]);
}
doc.getElementById("go-btn").onclick = function(){
start();
}
bd.className = "active";
}
</script>
相关文章推荐
- 巧用局部变量提升javascript性能
- javascript性能优化之局部变量的使用
- Javascript 作用域和变量提升
- Javascript:谈谈JS的全局变量跟局部变量
- JavaScript提升性能之事件委托
- JavaScript中变量提升------Hoisting
- ASP.NET站点性能提升-提高JavaScript加载
- 13 个JavaScript 性能提升技巧分享
- 翻译 - JavaScript中的作用域与变量声明提升
- javascript那些事儿——提升:零散变量问题
- JavaScript 性能提升的13个小技巧
- Visual Studio 2005 通过静态变量及可系列化的HASHTABLE变量优化工厂模式(Factory)的效率,提升性能(E8.Net工作流应用系统优化系列四)
- JavaScript执行效率与性能提升方案
- JavaScript执行效率与性能提升方案
- JavaScript的隐式声明和变量声明提升的总结
- Rails gem 打包css javascript 提升网站性能 jammit 简介
- WEB Workers提升WEB前端脚本JavaScript的处理性能
- JavaScript中变量提升 Hoisting
- javascript中变量声明提升(Hoisting)