javascript提升性能的常用技巧总结【经典】_javascript技巧

javascript提升性能的常用技巧总结【经典】_javascript技巧

ID:30768861

大小:54.50 KB

页数:6页

时间:2019-01-03

javascript提升性能的常用技巧总结【经典】_javascript技巧_第1页
javascript提升性能的常用技巧总结【经典】_javascript技巧_第2页
javascript提升性能的常用技巧总结【经典】_javascript技巧_第3页
javascript提升性能的常用技巧总结【经典】_javascript技巧_第4页
javascript提升性能的常用技巧总结【经典】_javascript技巧_第5页
资源描述:

《javascript提升性能的常用技巧总结【经典】_javascript技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JavaScript提升性能的常用技巧总结【经典】本文讲述了JavaScript提升性能的常用技巧。分享给大家供大家参考,具体如下:1•注意作用域随着作用域链中的作用域数量的增加,访问当前作用域以外的变量的时间也在增加•访问全局变量总是要比访问局部变量慢,因为要遍历作用域链.1).避免全局查找将在一个函数中会多次用到的全局对象存储为局部变量总是没错的.2).避免with语句with会创建自己的作用域,因此会增加其中执行代码的作用域链的长度.2•选择正确的方法性能问题的一部分是和用于解决问题的算法或者方法冇

2、关的.1).避免不必要的屈性查找在计算机科学屮,算法的复杂度是使用0符号来表示的•最简单,最快捷的算法是常数值,即0仃).之后,算法变得越来越复杂并花更长时间执行.常用的JavaScript算法类型有:常数:不管冇多少值,执行的时间都是恒定的•一般表示简单值和存储在变量的值.对数:总的执行时间和值的数量相关,但是要完成算法并不一定要获取每个值.例如:二分查找线性:总执行吋间和值的数量直接相关•例如:遍历某个数组小的所有元素平方:总执行时间和值的数量有关,每个值至少要获取n次.例如:插入排序立方:总执行时间

3、和值的数量有关,每个值至少要获取n的平方次使用变量和数组要比访问对彖上的屈性更冇效率•对彖上的任何屈性的查找都要比访问变量或者数组花更长时间,因为必须在原型链中对拥有该名称的属性进行一次搜索.一般来讲,只要能减少算法的复杂度,就要尽可能减少.尽可能多地使用局部变量将属性查找替换为值查找.进一步讲,如果即可以用数字化的数组位置进行访问,也可以使用命名属性(诸如NodeList对象),那么使用数组位置.1).优化循坏a.减值迭代在很多情况下,从最大值开始,在循环中不断减值的迭代器更加高效.b.简化终止条件由于

4、每次循环过程都会计算终止条件,所以必须保证它尽可能快C.简化循环体循环体是执行最多的,所以要确保其被最大限度地优化.确保没有某些口J以被很容易移出循环的密集计算.d.使用后测试循环最常用的for循环和while循环都是前测试循环•而如do-while这种后测试循环,可以避免最初终止条件的计算,因此更快.2).展开循环当循环的次数是确定的,消除循环并使用多次函数调用往往更快•如著名的Duff装置3).避免双重解释当JavaScript代码想解析JavaScript的时候就会存在双重解释的惩罚.如b例:eva

5、l(,zalert(,Helloworld!,)“);//某些代码求值修止:alert(,Helloworld');varsayHi=newFunction("alert('Helloworld!')");修正:varsayHi=function(){alertCHellowworld!,);};修正:setTimeout(function)({alert(JHollowworld!');},500);1).其他方法原生方法较快一只要有可能,使用原生方法而不是自C用JavaScript重写一个.原生方法是

6、用诸如C/C++Z类的编译型语言写出来的,所以耍比JavaScript的快很多很多.JavaScript屮最容易被忘记的就是可以在Math对象屮找到的复杂的数学运算;这些方法要比任何用JavaScript写的同样方法,如止弦,余弦快的多.Switch语句较快--如果有一系复杂的if-else语句,可以转换成单个switch语句则口J以得到更快的代码•还口J以通过将case语句按最可能的到最不可能在顺序进行组织,來进一步优化switch语句.位运算符较快一当进行数学运算的时候,位运算操作要比任何布尔运算或者

7、算数运算快.选择性的用位运算换算数运算可以极大提升复杂计算的性能•诸如取模,逻辑与和逻辑或都可以考虑用位运算来替换.3・最小化语句数1)・多个变量声明如://4个语句一-很浪费varcount=5;varcolor="blue";varvalues=[1,2,3];varnow二newDate();优化:varcount=5,color="blue",values=[1,2,3],noiw=newDate();在人多数情况下这种优化都非常容易做,并口要比单个变量分别声明快很多.1).插入迭代值如:varn

8、ame二values[i];i++;优化:varname=values[i++];2).使用数组和对象字面量如:varvalues=newArray();>varvalues=[];varobj=newObject();>varobj={};4.优化DOM交互1)・最小化现场更新一旦你需要访问D0M部分是已经显示的页面的一部分,那么你就是在进行一个现场更新・Z所以叫现场更新,是因为需要立即(现场)对页而对用户的显示进行更新•不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。