JS 之性能优化(1)

了解JS性能优化是学习前端必备的一项技能。下面就简单的列出几点:

1.注意作用域,避免全局查找。

访问全局变量比访问局部变量慢,是因为需要遍历作用域链,查找作用域链需要额外的时间。所以在一个函数中,将访问多次的全局对象或者域外变量存储为局部变量来使用。如某个方法需引用全局变量的值,则在该方法所在的对象的作用域中定义一个局部变量等于全局变量的值。

避免不必要的属性查找,将属性设置为局部变量。

function(){

  var title = document.title;

  for(var i=0;i<3;i++){

    console.log(title);

  }

}

 

2.优化循环

简化循环体。当循环的数量不多时,展开循环。当if-else较多时,建议使用switch语句。

 

3.最小化语句数

声明多个变量时,可以使用一个var关键字来声明,变量之间用逗号表示。

使用数组或对象字面量来新建数组或对象。var arr= [1,2,3,4];var map={a:1,b:2}

 

4.JS的执行尽量脱离DOM树,限制DOM操作的次数,优化DOM交互,尽量减少浏览器对DOM的渲染和重绘操作

最小化现场更新,现场更新就是立即对页面的显示进行更新。尽量少更新。这时候可使用文档碎片来构建DOM结构。document.createDocumentFragment()

使用innerHTML来构建大的DOM结构。但是也避免重复大量的使用。

 

5.使用事件代理

页面上的事件处理程序的数量和页面响应用户交互的速度之间有个负相关。所以为了减少事件处理程序,尽量使用事件委托技术。

 

6.JS的执行顺序

JS放HTML页面最后面时,不一定提升JS性能,但是在网速较慢的时候会快速的渲染页面。

 

7.JS定义行为,html定义内容,CSS定义外观,不混淆

 

8.减少HTTP请求数,JS压缩,HTTP压缩

 

9.数据尽量存储在数组里

 

10、代码的优化不是减少代码量,而是增加代码提高代码的可阅读性。

包括正确标记变量,封装某个重复的行为,合理的注释等。

 

PS:以上内容如果描述的不准确,欢迎拍砖。

转载于:https://www.cnblogs.com/zourong/p/4820305.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
three.js是一个用于在Web浏览器上创建和显示3D图形的JavaScript库。在处理大场景时,性能优化是非常重要的,以下是一些three.js大场景性能优化的方法: 1. 模型合并:将场景中的相关模型合并为一个单独的模型,可以减少绘制调用的次数,从而提高性能。 2. 纹理压缩:通过使用压缩格式的纹理,如WebP或DDS,可以减少纹理的大小和加载时间,提高渲染性能。 3. 层级着色器:使用层级着色器技术,将复杂的3D模型分层渲染,只绘制可见的部分,隐藏掉被遮挡的部分,从而降低渲染负载。 4. LOD(细节层次):使用LOD技术,根据相机距离来自动切换不同细节层次的模型,以确保远处的物体具有较低的多边形数量,提高性能。 5. 遮挡剔除:使用遮挡剔除技术,可根据相机位置自动计算隐藏在其他物体后面的物体,避免不必要的渲染。 6. 光照优化:减少光源数量和复杂度,使用更简单的光照模型,如平行光或环境光,可以提高渲染性能。 7. 离屏渲染:使用离屏渲染技术,将不经常变化的场景渲染到一个纹理中,然后将该纹理用作场景的背景,避免重复渲染,提高性能。 8. WebGL扩展:利用WebGL的扩展功能,如VAO(顶点数组对象)和instancing(实例化)等,可以优化渲染效率和内存使用。 总之,three.js大场景性能优化的关键在于减少渲染调用次数、降低多边形数量、使用优化的纹理和光照,并合理利用WebGL的扩展功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值