WEB开发网
开发学院WEB开发ASP.NET ASP.NET性能优化 阅读

ASP.NET性能优化

 2010-10-31 08:59:55 来源:WEB开发网   
核心提示:3. 尽量减少循环内的操作,循环内的每个操作,ASP.NET性能优化(15),都会被放大为循环次数的倍数,所以,减少JScript文件的下载次数6. 在HTML内书写JScript文件的URL时,注意统一大小写,大循环内微小的改进,在性能的整体提升上都是可观的

3. 尽量减少循环内的操作。
 循环内的每个操作,都会被放大为循环次数的倍数。所以,大循环内微小的改进,在性能的整体提升上都是可观的。

4. 使用循环替代递归。
 相比循环,递归的效率更差一些。递归的优点是在形式上更自然一些。所以,在不影响代码的维护性的前提下,用循环替代递归。

4.2.6 其它方面
 1. 尽量使用语言内置的语法。
 "var arr = […];"和"var arr = new Array(…);"是等效的,但是前者的效能优于后者。同样,"var foo = {};"的方式也比"var foo = new Object();"快;"var reg = /../;"要比"var reg=new RegExp()"快。

2. 尽量不要使用eval。
 使用eval,相当于在运行时再次调用解释引擎,对传入的内容解释运行,需要消耗大量时间。

3. 使用prototype代替closure。
 使用closure在性能和内存消耗上都是不利的。如果closure使用量过大,这就会成为一个问题。所以,尽量将:
 this.methodFoo = function()
 替换成:
 MyClass.protoype.methodFoo = function()
 和closure存在于对象实例之中不同,prototype存在于类中,被该类的所有的对象实例共享。

4. 避免使用with语句。
 With语句临时扩展对象查找的范围,节省了文字的录入时间,但付出了更多的执行时间。因为每个给出的名称都要在全局范围查找。所以,可以将下面的代码:
with (document.formname)
{
field1.value = "one";
field2.value = "two";
}
变更为:

var form = document.formname;
form.field1.value = "one";
form.field2.value = "two";


4.3 DOM相关
 4.3.1 创建DOM节点
 相比较通过document.write来给页面生成内容,找一个容器元素(比如指定一个div或者span)并设置他们的innerHTML效率更高。
 而设置innerHTML的方式比通过createElement方法创建节点的效率更高。事实上,设置元素的innerHTML是创建节点效率最高的一种方式。
  如果必须使用createElement方法,而如果文档中存在现成的样板节点,应该是用cloneNode()方法。因为使用 createElement()方法之后,你需要设置多次元素的属性,使用cloneNode()则可以减少属性的设置次数。同样,如果需要创建很多元 素,应该先准备一个样板节点。

4.3.2 离线操作大型的DOM树
 在添加一个复杂的DOM树时,可以先构造,构造结束后再将其添加到DOM数的适当节点。这能够节省界面刷新的时间。

同样,在准备编辑一个复杂的树时,可以先将树从DOM树上删除,等编辑结束后再添加回来。

 4.3.3 对象查询
 使用[""]查询要比.item()更快。调用.item()增加了一次查询和函数的调用。

4.3.4 定时器
 如果针对的是不断运行的代码,不应该使用setTimeout,而应该用setInterval。setTimeout每次要重新设置一个定时器。

4.4 其他
 1. 尽量减小文件尺寸。
 将JScript文件中无关的空行、空格、注释去掉,有助于减小JS文件的尺寸,提高下载的时间。(可以通过工具来支持代码发布)
 2. 尽量不要在同一个Page内同时引用JScript和VBScript引擎
 3. 将Page内的JScript移入到单独的JS文件中。
 4. 将Page内的JScript放置在Page的最下面,有助于提高页面的响应速度。
 5. 利用cache,减少JScript文件的下载次数
 6. 在HTML内书写JScript文件的URL时,注意统一大小写。这样可以利用前面URL缓存的文件。

上一页  10 11 12 13 14 15 16  下一页

Tags:ASP.NET 性能优化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接