欢迎来到天天文库
浏览记录
ID:39917623
大小:93.21 KB
页数:9页
时间:2019-07-15
《js性能优化方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、目录RIA(RichInternetApplications)性能优化2javascript的性能优化应分为两大部分:2下载时间和执行时间、语言特性2下载时间2执行时间4语言特性的一些优化方案8RIA(RichInternetApplications)性能优化javascript的性能优化应分为两大部分:下载时间和执行时间、语言特性下载时间 javascript作为一种解释性语言不同于其他编程语言。在诸如java,c,c++的语言中,开发人员根本无需考虑变量名的长度以及长篇大论的注释,因为这些在编译时都会被删除。 但是
2、web浏览器下载的是javascript的源代码,你编写的javascript程序文件会原模原样地下载到客户端。而这些长变量名和注释就会影响脚本的下载时间。单个TCP-IP包中能放入的字节数是1160,所以最好将每个javascript文件的大小控制在1160字节以内以获取最优的下载时间。 javascript文件中的任何字节,不管是空格,还是换行都会影响javascript文件的下载时间,所以在部署任何javascript文件之前,都应该尽可能地优化脚本文件的体积。以下是一些常用的优化javascript文件大小的方
3、法: 1、删除注释脚本中的任何注释都应该在部署之前被删除。虽然注释对于开发人员来说意义重大,但在部署时这些注释对客户端用户是没有任何实质意义的,而更可怕的是很多javascript源代码中的注释会比代码多得多。因此删除注释是所见javascript文件大小最为方便有效的途径。 2、删除制表符和空格 有规律地缩进代码有增强代码的可阅读性,但是浏览器/客户端用户并不需要这些额外的制表符和空格,所以最好删除它们,包括函数参数,赋值语句和比较操作符之间的空格: functiondoSomething(arg1,arg2,arg
4、3){ alert(arg1+arg2+arg3); } functiondoSomething(arg1,arg2,arg3){alert(arg1+arg2+arg3);}3、删除所有换行 和前一条规则一样,只要你在程序的每行结尾都正确地添加了分号,那么就不需要再添加换行符了。 4、替换变量名 此方法很无聊,大致做法就是将所有变量名替换成无意义的简短变量名,要手动完成以上四步,在实际中可能会有一定的难度,不过不用怕我整理了一个类函数,可以自动完成以上操作。5、替换布尔值 对于比较来说,true等译1,false等
5、于0。因此可以将字面量的true都用1来替换,而false用0来替换,进而较少一定的字节数。 6、缩短否定检测 代码中常常会出现检测某个值是否有效的语句。而大部分否定测试所做的就是判断某个变量是否为undefined、null或者false,如下: if(oTest!=undefined){ //dosomething } if(oTest!=null){ //dosomething } if(oTest!=false){ //dosomething } //这样写更简洁 if(!oTest){ //dosom
6、ethin }7、使用数组和对象字面量 varaTest=newArray; varoTest=newObject; oTest.pro1="pro1" oTest.pro2="pro2";和下面的代码作用是完全相同的,但是下面的代码可以节省更多的字节。 varaTest=[]; varoTest={pro1:"pro1",pro2:"pro2"};执行时间 javascript是一种解释性语言,它的执行速度要大大慢于编译型语言。据测试,javascript的执行效率要比编译型的C程序慢5000倍;比解释型的Java慢
7、100倍;比解释型的Perl慢10倍。但是我们仍然可以通过一些简单的事情来提高javascript的效率,同时这也显得更加重要。 执行时间1、使用局部变量 在函数中,总是使用var来定义变量。无论何时使用var都会在当前的范围类创建一个局部变量。如果不使用var来定义变量,那么变量会被创建在window范围内,那么每次使用这个变量的时候,解释程序都会搜索整个范围树。同时全局变量要在页面从浏览器中卸载后才销毁,而局部变量在函数执行完毕即可销毁,过多的全局变量增加了不必要的内存消耗。 2、避免使用with语句 使用with
8、语句能够减少一定的代码长度,但是在使用with语句时,要强制解释程序不仅在范围树内查找局部变量,还强制检测每个变量及指定的对象,看其是否为特性。因为,我们也可以在函数中定义同名的变量。 3、选择正确的算法 只要有可能就应该用局部变量或者数字索引的数组来替代命名特性。如果命名特性要多次使用,就先将它的值存储在局部变量中,以避免多次使
此文档下载收益归作者所有