博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js-JavaScript高级程序设计学习笔记21 改善JavaScript性能的方法
阅读量:6371 次
发布时间:2019-06-23

本文共 763 字,大约阅读时间需要 2 分钟。

第24章 最佳实践

1、性能

1、避免全局查找

将在一个函数中会用到多次的全局对象保存在局部变量。比如多次使用document.getElement。。。,可以首先var doc=document,把document对象保存在本地的doc变量中。

2、避免with语句

with会创建自己的作用域,需要额外的作用域链查找

3、避免不必要的属性查找

如果需要多次用到对象属性,应该将其存储在局部变量中

4、优化循环

减值迭代更快,优化循环体

5、展开循环

循环次数确定时,消除循环更快。Duff装置的基本概念是将循环展开。

6、避免双重解释

JS解析字符串代码时需要启动解析器,慢

7、其他

原生方法较快。因为使用C/C++等编译型语言写的

Switch语句较快。比if-else语句更快

位运算符较快

8、最小化语句

多个变量声明组合

②插入迭代值,比如var name=values[i++];

使用数组和对象字面量,比使用构造函数好

9、优化DOM交互

①最小化现场更新,比如使用DOM多次插入元素,可以先创建文档片段,之后将片段插入,只进行一次现场更新

使用innerHTML,比JS创建DOM结构更快。应构建好内容后一次性调用innerHTML,避免多次innerHTML。

③使用事件委托,利用事件冒泡,减少页面上的事件处理程序。

④注意HTMLCollection对象。避免多次调用,它是动态的,每次调用需要进行一次文档查询!

以下情况会返回HTMLCollection对象

  • 进行了对getElementsByTagName的调用
  • 获取了元素的childNodes属性
  • 获取了元素的attributes属性
  • 访问了特殊的集合,如document.forms/document.images等。

转载地址:http://wxuqa.baihongyu.com/

你可能感兴趣的文章
Spring bean 创建过程源码解析
查看>>
文件头尾增加字符串脚本
查看>>
【unity】关于AssetBundle的加载与卸载
查看>>
ansible模块yum、services、setup
查看>>
大数据实战之环境搭建(一)
查看>>
Azkaban的Exec Server分析 31:FlowRunner如何推动Graph的前进
查看>>
Android切近实战(二)
查看>>
实施微服务,我们需要哪些基础框架?[转]---技术问题
查看>>
MyBatis-3.4.2-源码分析17:XML解析之bindMapperForNamespace
查看>>
ubuntu操作系统真机调试android问题
查看>>
MySQL权限更改示例及SQL语句练习
查看>>
linux下为php添加memcache扩展=>解决服务器集群session共享问题
查看>>
nginx反向代理缓存静态文件
查看>>
Yum服务器搭建实例
查看>>
nginx rails 详细站点配置入门教程
查看>>
EXAM-5试题与详解
查看>>
丹尼斯·里奇,那个给乔布斯提供肩膀的巨人
查看>>
图片上传前预览
查看>>
etcd集群的部署
查看>>
struts2标签库
查看>>