按速度优化JavaScript代码
来源:互联网 发布:cocos3d unity3d 编辑:程序博客网 时间:2024/05/04 19:09
一旦你的JavaScript能运行,你就会想到使其运行得更快。在讲解加速代码的方法之前,让我先讲讲“80/20规则”:百分之八十的优化 是由最初百分之二十的工作所完成的。竭力实现剩余百分之二十的速度优化是一种巨大的痛苦,而且经常导致完全不能读和难以管理的代码。简言之,如果你的 JavaScript运行得很慢,你可以用很多简单的方法来加速它,但是除非你的代码确实运行得很慢,我不会对它进行再优化。下面是一些使你的代码轻松运 行的方法。
限制循环内的工作量
程序运行慢的最常见原因是循环内的重复工作。如果一条命令只需要执行一次,就没有必要把它放在循环内。例如:
var index = 0;
while (index <10)
{
var the_date = new Date();
var the_day = the_date.getDay();
var the_name = prompt("what's the kid's name? " ,"");
alert("On " + the_day + " " + the_name + " is a very special person.");
index++;
}
此程序循环执行10次。每次得到当天的日期,询问小孩的名字,然后打印出“On Monday,so-and-so is a
very special person.”。但是日期是不会改变的,总是今天。所以没有必要把前两行放在循环中。把它们从循环中拿出来,让其只执行一次而不是10次,这样会节省时间:
var index = 0;
var the_date = new Date();
var the_day = the_date.getDay();
while (index <10)
{
var the_name = prompt("what's the kid's name? " ,"");
alert("On " + the_day + " " + the_name + " is a very special person.");
index++;
}
定制if-then-else语句,按最可能到最不可能的顺序
因为if-then-else语句在遇到条件为真时结束,你可以通过把最有可能的条件放到最开始来减少需要判断的语句的数量。例如:
var pet = prompt("what kind of pet do you have?", "");
if (pet == "cat")
{
doCatStuff();
}else if (pet == "dog")
{
doDogStuff();
} else if (pet == "bird")
{
doBirdStuff();
} else if (pet == "lizard")
{
doLizardStuff();
}
一般来说,程序中的if子句比从lizard到dog需要执行的逻辑判断要少。
最小化重复执行的表达式
如果你发现需要重复计算一个特定的表达式,如var pi=22/7,只计算一次并把它放在一个全局变量中或
许是个好主意。例如,不象下面程序这样:
function theArea(radius)
{
var pi = 22/7;
var area = pi * radius * radius;
return area;
}
function theCircumference(radius)
{
var pi = 22/7;
var circumference = 2 * pi * radius;
return circumference;
}
而是这样做:
var pi = 22/7;
function theArea(radius)
{
var area = pi * radius * radius;
return area;
}
function theCircumference(radius)
{
var circumference = 2 * pi * radius;
return circumference;
}
我知道我在用一个全局变量,我也说过这不是一个好主意。然而,一些数字,如pi,其值在程序中永远不会改变,是此规则的特例。通过只计算pi一次,可以省 去额外的计算。或许时间上的一些小的节省,累加起来会很管用。如果你发现代码运行很慢,你只要注意一些事情。这些都很明显,但是当你发现你经常忽略象这样 简单的优化技巧时,你会很吃惊。
(引自<<JavaScript高级教程>>)
- 按速度优化JavaScript代码
- 优化JavaScript下载速度
- 测试优化速度代码
- 优化PHP代码执行速度
- 如何优化代码编译速度
- VS优化Release代码速度
- VC++代码执行速度优化
- 对javascript的加载速度进行优化
- 优化网页代码提高网页访问速度
- 矩阵转置代码,速度优化
- 【代码优化】如何提高网页加载速度
- 【代码优化】如何提高网页加载速度
- 优化 JavaScript 代码
- 优化JavaScript代码
- javascript 代码优化
- Javascript代码优化
- javaScript代码优化
- Javascript代码优化技巧
- Microsoft IIS6.0实现WAP应用
- GET是用来获取某些东西,POST则是用来完成某事.
- Tomcat环境设置
- 数据库原理及应用
- 配置wap服务器
- 按速度优化JavaScript代码
- Java基本的API中,String,StringBuffer,Math,Wapper class的基本应用
- asp.net wap开发心得
- 整合Apache2.2和Tomcat5.5
- 用VS2005实现ASP.NET2.0移动开发(3)
- 用VS2005实现ASP.NET2.0移动开发(2)
- 用VS2005实现ASP.NET2.0移动开发(1)
- CSDN 应该升级一下上传照片的功能
- 用ASP.NET创建移动Web窗体