提高js性能的方法
1、文档瘦身
(1)删除注释(版权及法律声明部分应保留),运行时不需要注释。
(2)删除制表符、空格和换行符,这些只是为了便于程序的维护,但是与执行无关。
(3)替换长的变量名为短的变量名。
(4)使用 0 和 1 替代 false 和 true ,对于 x!=true , 可以使用 !x 代替。
(5)使用 [] 代替 new Array() , 使用{} 代替 new Object()。
(6)如果一次定义多个变量,尽量在同一行内定义。
可以使用工具来进行完成,比如: Microsoft Ajax Minifier 、 Yahoo YUI Compressor。
2、控制内存
(1)释放变量的引用。
(2)释放属性的引用。
(3)释放数组对象的引用。
3、优化代码
(1)如果函数体内语句较多,应避免从一个循环中多次调用一个函数。将函数分割成较小的函数,然后在循环中包含小函数的内容,可使效果更佳。
(2)尽可能使用内建函数,内建函数一般都是经过优化的,要比用户自定义函数运行速度更快。
(3)在开始循环前将 Array.length 赋予变量,将变量作为条件使用,而不是使用 Array.length 本身。
(4)也可以使用反转循环来优化执行,这样可以节省一个变量。
(5)注重优化循环及所有重复动作。解释引擎会花费许多时间来处理循环。
(6)在局部变量够用时,不要使用类属性或者全局变量。
(7)避免在循环体内申明变量,应该在循环体外声明。
(8)使用 try...catch...finally 语句时,要在 finally 语句中释放占用的自愿,否在在 catch 到错误后占用的资源不能释放。
(9)避免使用递归调用和嵌套循环,它们会严重影响性能,在不得不用的时候才使用。
(10)继承会增加方法调用的数量,而且会使用更多的内存,包括所需全部功能的类在运行时要比从超类继承某些功能的类更加有效。因此,用户可能需要在类的扩张性和代码有效性间做出一定的设计取舍。
(11)对于不需要立即运行的脚本,可以在 script 元素里面添加 defer 属性。
(12)避免使用 with 语句。
(13)setTimeOut() 和 setInterval()函数可以使用一个函数名或一个字符串作为首个参数。如果传递一个字符串,引擎将使用函数构造器创建一个新函数。
(14)函数缓存,即将函数或方法赋给一个变量是一个非常好的编程习惯。
提高js性能的方法的更多相关文章
- 提高PHP性能的方法技巧
1.用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册 ...
- Android提高UI性能技巧
提高UI性能的方法事实上有非常多在实际的开发中都已经用到了,在此做一下总结. 1.降低主线程的堵塞时间 若一个操作的耗时较长(超过5秒),我们应该将其放入后台线程中运行.仅仅在须要改动UI界面时通知主 ...
- PHP提高网站性能的一些方法
前段时间面试问到了这个问题,回答的不是很全面,就去问了度娘,得到了一些比较全的答案,由于出处较多就没法确定原文出处了.下面是分享的答案. 一.大型网站性能提高策略: 大型网站,比如门户网站,在面对大量 ...
- Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net
Atitit.提升软件Web应用程序 app性能的方法原理 h5 js java c# php python android .net 1. 提升单例有能力的1 2. 减少工作数量2 2.1. 减少距 ...
- 22 mysql有那些”饮鸩止渴”提高性能的方法?
22 mysql有那些”饮鸩止渴”提高性能的方法? 正常的短连接模式是连接到数据库后,执行很少的SQL语句就断开,下次需要的时候再重新连接.如果使用的是短连接,在业务高峰期的时候,就可能出现连接数突然 ...
- 几种设计良好结构以提高.NET应用性能的方法
写在前面 设计良好的系统,除了架构层面的优良设计外,剩下的大部分就在于如何设计良好的代码,.NET提供了很多的类型,这些类型非常灵活,也非常好用,比如List,Dictionary.HashSet.S ...
- 总结的js性能优化方面的小知识
前言 一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己 ...
- 我总结的js性能优化的小知识
前言 一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己 ...
- js中apply方法的使用
js中apply方法的使用 1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是: Object.extend = function(destinat ...
随机推荐
- html5游戏的横屏问题
html5 API有这个参数 Screen Orientation API 可以看w3c定义的规范 The Screen Orientation API <!-- UC强制竖屏 --> & ...
- git 在企业里的基本操作
拖下来码云上的代码: git add . 若把单个文件加入到暂存区,则用git add 某文件 若把所有文件加入到暂存区,则使用git add . git commit -m"提交" ...
- XPath--快速获取XML数据的节点或属性
转载自 XPath可以快速定位到Xml中的节点或者属性.XPath语法很简单,但是强大够用,它也是使用xslt的基础知识.示例Xml: <?xml version="1.0" ...
- 联系我们地图坐标展示js
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6d88 ...
- oracle获取排序第一的数据
一:按照某字段排序(时间,总数等),获取第一条 select a.* FROM ( select * from ( select t.*,row_number() over(partition by ...
- 第一部分 JavaScript语言核心(三)
第六章 对象 P123 在ES3中,点运算符后的标识符不能是保留字.如果一个对象的属性名是保留字,name必须使用方括号的形式访问它们,如o["for"]和o["clas ...
- 实验3- 熟悉常用的 HBase 操作
石家庄铁道大学信息科学与技术学院 实验报告 2018年----2019年 第一学期 题目: 熟悉常用的 HBase ...
- POJ 2346:Lucky tickets
Lucky tickets Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3247 Accepted: 2136 Des ...
- Java算法练习——盛最多水的容器
题目链接 题目描述 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) ...
- div 100% 填充页面
css中 html,body{ margin:0; padding:0; height:100%; }