JS性能消耗在哪里?

内部原因:构造,递归,循环,拷贝,动态执行,字符串操作等

1.过度的封装(过多的创建“庞大的”对象,但是如果在允许的条件下,面向对象的封装是可以提高维护性,而且符合我们的高内聚低耦合原则);

2.少的去使用私有变量在外界访问(向外界通过暴漏接口的方式去访问私有变量很消耗性能);

3.大量构造对象开销很大;

4.动态使用脚本的增加DOM节点改变DOM的拓扑结构在“互联网”当中更是不可取的(可以通过隐藏显示方法);

5.及时释放闭包内没有释放的资源

6.能不用eval动态解析的时候尽量不用

7.简化代码(如if..else...)

时间: 2024-10-09 06:54:58

JS性能消耗在哪里?的相关文章

JS性能优化

下面是一些关于客户端JS性能的一些优化的小技巧: 1.[顶]关于JS的循环,循环是一种常用的流程控制.JS提供了三种循环:for(;;).while().for(in).在这三种循环中 for(in)的效率最差,因为它需要查询Hash键,因此应尽量少用for(in)循环,for(;;).while()循环的性能基本持平.当然,推 荐使用for循环,如果循环变量递增或递减,不要单独对循环变量赋值,而应该使用嵌套的++或--运算符. 2.如果需要遍历数组,应该先缓存数组长度,将数组长度放入局部变量中

JS性能之滚动条之外的其他部分

问题: 如果一个页面宽高比较大,也就是页面需要滚动条来查看其他页面内容,这时候,在滚动条之外的其他部分,是依然处于运行状态. 比如那部分有视频播放,则那些视频虽然在当前窗口看不到,但它们还是会处于播放状态,也就是说在不停的消耗页面的资源! 解决方法: # 如果对于当页面没有滚动条,也就是一个页面可以完全显示所有内容的情况下,就没有必要去解决该问题了. 1 自己写个函数,专门用于监听页面的所有内容,如果某模块处于滚动条之外,则对该模块进行隐藏操作--display:none; JS性能之滚动条之外

js 性能优化 篇一

JS性能优化 摘自:http://www.china125.com/design/js/3631.htm 首先,由于JS是一种解释型语言,执行速度要比编译型语言慢得多.(注:,Chrome是第一款内置优化引擎,将JS编译成本地代码的浏览器,其它浏览器也陆续实现了JS的编译过程.但是,即使到了编译执行JS的新阶段,仍然会存在低效率的代码.)以下总结一些可以改进代码的整体性能的方法. 1.注意作用域 记住一点,随着作用域中的作用域数量的增加,访问当前作用域以外的变量的时间也在增加.所以,访问全局变量

客户端JS性能的一些优化的小技巧

下面是一些关于客户端JS性能的一些优化的小技巧:1.[顶]关于JS的循环,循环是一种常用的流程控制.JS提供了三种循环:for(;;). while().for(in).在这三种循环中 for(in)的效率最差,因为它需要查询Hash键,因此应尽量少用for(in)循环,for(;;).while()循环的性能基本持平.当然,推 荐使用for循环,如果循环变量递增或递减,不要单独对循环变量赋值,而应该使用嵌套的++或--运算符.2.如果需要遍历数组,应该先缓存数组长度,将数组长度放入局部变量中,

stb前端开发js性能优化总结

js性能优化 javascript是一种解释型语言,性能无法达到和C.C++等编译语言的水平,但还是有一些方法来改进. 1.循环 JavaScript中的循环方式有for(;;).while().for(in)3种.其中for(in)的效率极差,因为for(in)执行过程中需要查询散列键.for(;;)和while()比较,while循环的效率要优于for(;;). 2.局部变量和全局变量 局部变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的堆栈当中的. 3.不使用e

网页渲染优化和JS性能提升

自学前端有一段时间了,在网上学习总结了点网页的渲染性能和JS性能提升的方法,有利于写出更加优秀的代码 1. 不要使用GIF图片实现loading效果,这样会降低CPU消耗: 2. 禁止使用iframe,会阻塞父文档onload事件:搜索引擎的检索程序无法解读这种页面,不利于SEO: 3. 使用CSS3代码替代JS动画,尽可能避免重绘重排以及回流: 4. 对于一些小图标,可以使用base64位编码,以减少网络请求: 5. 网页Gzip,CDN托管,data缓存 ,图片服务器: 6. 前端模板 JS

JS性能优化 之 文档片段 createDocumentFragment

我们用原生JS进行开发时,经常会用到两种更新DOM节点的方法:innerHTML 和 appendChild() .其中 innerHTML 会完全替换掉原先的节点内容,如果我们是想向元素追加子节点的话,那么 innerHTML 显然满足不了需求. 转而我们就会想到 appendChild() 方法.appendChild方法接收的参数类型为单个的节点类型对象.因此当我们要添加多个子节点时,只能通过循环来实现. 例如: for (var i = Things.length - 1; i >= 0

你不知道的Node.js性能优化,读了之后水平直线上升

本文由云+社区发表 "当我第一次知道要这篇文章的时候,其实我是拒绝的,因为我觉得,你不能叫我写马上就写,我要有干货才行,写一些老生常谈的然后加上好多特技,那个 Node.js 性能啊好像 Duang~ 的一下就上去了,那读者一定会骂我,Node.js 根本没有这样搞性能优化的,都是假的." ------ 斯塔克·成龙·王 1.使用最新版本的 Node.js 仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升,因为几乎任何新版本的 Node.js 都会比老版本性能更好,为什么

JS性能

获取以下属性  会等待对应元素渲染完成  才继续执行 * offsetTop, offsetLeft, offsetWidth, offsetHeight* scrollTop, scrollLeft, scrollWidth, scrollHeight* clientTop, clientLeft, clientWidth, clientHeight* getComputedStyle() (在IE中为currentStyle) PS 如果该元素display为none 或者其父元素displ