提高程序执行效率 Web开发技巧集合1

 

导读]目前的Web应用程序都趋于复杂化,从用户的角度而言,如何提高用户操作的响应速度,加快程序的执行效率,是Web开发人员应考虑的问题。
 第 1 页 提高程序执行效率 Web开发技巧集合
 企业软件热点文章 
 SQL Server日志清除的两种方法   C++ 自定义动态数组模板 

  目前的Web应用程序愈发的复杂化,包括拥有富客户端以及大量的JavaScript编码等等,从用户角度而言,让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验,这就需要开发人员应提高应用程序的执行效率,以下是关于提高程序执行效率的小技巧。

  1.尽量避免使用DOM。当需要反复使用DOM时,先把对DOM的引用存到JavaScript本地变量里再使用。使用设置innerHTML的方法来替换document.createElement/appendChild()方 法。

  2.eval()有问题,new Fuction()构造函数也是,尽量避免使用它们。

  3.拒绝使用with语句。 它会导致当你引用这个变量时去额外的搜索这样的一个命名空间,with里的代码在编译时期是完全未知的。

  4.使用for()循环替代for…in循 环。因为for…in循环在开始循环之前需要Script引擎创建一个含有所有可循环属性的 List,需要多检查一次。

  5.把try-catch语句放在循环外面,不要放在循环里面,因为异常是很少发生的,放在外面避免每次都要执行它们。

  6.甚至圣经里都提到过这个 – 不要全局的。全局变量的生命周期贯穿整个脚本的生命周期,而本地变量的存在范围随着本地命名空间的销毁而消失。当在函数或其它地方引用一个全局变量时,脚 本引擎需要搜索整个全局命名空间。

  7.fullName += 'John'; fullName += 'Holdings';执行速度快于fullName += 'John' + 'Holdings';

  8.如果你需要把多个字符串连接起来,最好是把他们做成一个数组,然后调用join()方法实现这个操作。这种方式在生成HTML片段时尤其有效。

  9.对于简单的任务,最好使用基本操作方式来实现,而不是使用函数调用实现。例如val1 < val2 ? val1 : val2;执行速度快于Math.min(val1, val2);,类似的,myArr.push(newEle);慢于myArr[myArr.length] = newEle;

  10.将函数的引用作为参数传递到setTimeout()和setInterval()里优于将函数名作为字符串参数传递(硬编码)。例如,setTimeout(”someFunc()”, 1000)执行效率慢于setTimeout(someFunc, 1000)

  11.当进行遍历操作时避免使用DOM操作。通过像getElementsByTagName()这 种方法得到的DOM元素队列都是动态的;有可能在你还没有对它遍历完成时,它已经被改变。这有可能导致死循环。

  12.当你对对象的成员(属性或方法)进行反复操作时,先存储对它们的引用。例如var getTags = document.getElementsByTagName; getTags(’div’);

  13.在任何的代码段里,在局部变量范围外存放一个这个局部变量的引用。例如

function foo(arr) {  
var a = ’something’;  

//变量 ‘a’ 对于下面的一段就是范围外变量,这个变量的引用在很多情况下会有用处。  
for (var i = 0, j = a, loopLen = arr.length; i < loopLen; i++) {  
//do something  
}  
}
  14.for(var i=0; i < someArray.length; i++) {…}的执行效率慢于for (var i=0, loopLen=someArray.length; i

  15.在HTTP头信息里加入缓存控制过期和最大存活时间标记。


原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/database/93/11403093.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值