JS的性能咋个优化嘛

作者: 杨斌1994 | 来源:发表于2016-12-15 00:50 被阅读75次

避免作用域链的频繁查找

var gv;
function f () {
    // var iv = gv
    for 100
      console.log(gv)
      // console.log(iv)
}

避免重复的属性查找

首先对于o.x的时间复杂度是O(n),对于一般变量的取值时间复杂度是O(1)

// var ce = document.createElement
for 100
  document.createElement('div')
  // ce('div')

减少语句

var a = null
var b = null
var c = null
/// var a = b = c = null

优化循环

  • 减值循环
  • 简化终止条件
  • 简化循环体

另外介绍一下Duff装置:通过将循环体展开成多条循环体语句,大幅提高效率

var iterations = Math.floor(values.length / 8)
var leftover = values.length % 8
var i = 0

if (leftover > 0) {
  do {
    process(values[i++])
  } while (--leftover > 0)
}

do {
  process(values[i++])
  process(values[i++])
  process(values[i++])
  process(values[i++])
  process(values[i++])
  process(values[i++])
  process(values[i++])
  process(values[i++])
  // 记住是8个哦
} while (--iterations > 0)

缓存对于DOM的大量修改

document.createDocumentFragment()
另外使用innerHTML的效率比createElementappendChild效率高,同样也要注意缓存策略

UI事件代理

页面上事件处理程序的数量和页面响应时间呈现负相关。
在父级+的元素上,根据冒泡和捕获特性,实现事件代理。

注意HTMLCollection类型的对象

文档查询的开销很昂贵,而且它们是动态更新的,注意缓存提升效率
getElementsByTageName()
childNodes
attributes
document.forms
document.images

欢迎评论

相关文章

  • JS的性能咋个优化嘛

    避免作用域链的频繁查找 避免重复的属性查找 首先对于o.x的时间复杂度是O(n),对于一般变量的取值时间复杂度是O...

  • 前端性能优化

    js性能小贴士——优化循环 前端网页与js性能优化 我总结的js性能优化的小知识 提高 web 应用性能之 Jav...

  • 前端性能 优化 大全

    js性能小贴士——优化循环 前端网页与js性能优化 我总结的js性能优化的小知识 提高 web 应用性能之 Jav...

  • 前端进阶(9) - js 性能优化利器:prepack

    js 性能优化利器:prepack 1. js 性能优化 js 性能优化不外乎从三个角度入手: 1.1 开发者在编...

  • 8.1

    咋个引导会员嘛,咋个整,求解 女神们罩着我吧

  • 前端性能优化原理与实践(三)

    摘自前端性能优化原理与实践 DOM 优化原理与基本实践 JS是很快的,在 JS中修改DOM对象也是很快的。在JS的...

  • 如何提升JavaScript的执行效率

    js优化的总体原则 当需要时才优化 考虑可维护性 提升JS文件的加载性能 加载元素的顺序css文件放在 里,js文...

  • 如何进行网站性能优化

    网站性能优化“六步法则”:一、网页内容优化;二、服务器优化;三、Cookies优化;四、 CSS优化;五、JS优化...

  • Android知识点总结

    面试会被问到;性能优化往哪些方面考虑?内存优化?布局优化?Listview优化?webview与html5 js...

  • js性能优化

    面试中经常会被问到js性能的一些问题:比如:最直接的就是js怎么进行优化;还有就是js怎么处理大批量数据;用户交互...

网友评论

    本文标题:JS的性能咋个优化嘛

    本文链接:https://www.haomeiwen.com/subject/xhuwmttx.html