• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 网页制作 > JavaScript >

LAMP 调优之:JavaScript 性能调优(2)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-02-07点击:

  清单 4. 使用局部变量

  1. var myObj = … ..  
  2.  ..  
  3. function process(){  
  4. var doc = document; 
  5. var images = doc.getElementsByTagName("img"),  
  6. widget = doc.getElementsByTagName("input"),  
  7. combination = [];  
  8. for(var i = 0; i < images.length; i++){  
  9. combination.push(combine(images[i], widget[2*i]));  
  10. }  
  11. myObj.container.property1 = combination[0];  
  12. myObj.container.property2 = combination[combination.length-1];  
  13. }  

  我们用局部变量“doc”取代全局变量“document”,这样可以改进性能,尤其是对于大量使用全局变量的函数里面。

  再看如下代码:

  清单 5. 慎用 with

  1. var myObj = … ..  
  2.  ..  
  3. function process(){  
  4. var doc = document;  
  5.    var images = doc.getElementsByTagName("img"),  
  6. widget = doc.getElementsByTagName("input"),  
  7. combination = [];  
  8. for(var i = 0; i < images.length; i++){  
  9. combination.push(combine(images[i], widget[2*i]));  
  10. }  
  11. with (myObj.container) { 
  12. property1 = combination[0]; 
  13. property2 = combination[combination.length-1]; 
  14.              } 
  15. }  

  加上“with”关键字,我们让代码更加简洁清晰了,但是这样做性能会受影响。正如之前说的,当我们进入“with”代码块时,“combination”便从原来的层 1 变到了层 2,这样,效率会大打折扣。所以比较一下,还是使用原来的代码:

  清单 6. 改进 with

  1. var myObj = … ..  
  2.  ..  
  3. function process(){  
  4. var doc = document;  
  5. var images = doc.getElementsByTagName("img"),  
  6. widget = doc.getElementsByTagName("input"),  
  7. combination = [];  
  8. for(var i = 0; i < images.length; i++){  
  9. combination.push(combine(images[i], widget[2*i]));  
  10. }  
  11. myObj.container.property1 = combination[0]; 
  12. myObj.container.property2 = combination[combination.length-1]; 
  13.      }  

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ