博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js-关于性能优化的一些学习总结
阅读量:6297 次
发布时间:2019-06-22

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

性能优化的方法有:

1、减少HTTP请求:合并CSS/JS,使用CSS sprite等

2、压缩CSS/JS/图片

3、样式表放头部,JS放body底部:JS放在head中,将会等到js全部下载解析和执行后才会显示页面内容。

4、减少DOM操作,DOM操作很消耗性能,另外注意HTMLCollection和NodeList。这两个对象是动态的,每次访问都会进行一次查询。在迭代中避免重复访问。

历史上的DOM集合接口。主要不同在于HTMLCollection是元素集合而NodeList是节点集合(即可以包含元素,也可以包含文本节点)。所以 node.childNodes 返回 NodeList,而 node.children 和 node.getElementsByXXX 返回 HTMLCollection 。(来自知乎 )
需要时可以将NodeList对象转换为数组。
function convertToArray(nodes){    var array=null;    try{        array=Array.prototype.slice.call(nodes,0);//针对非IE    }catch(ex){        array=new Array();        for(var i=0,len=nodes.length;i

querySelectorAll()方法返回的是一个NodeList实例,类似于一组元素的快照,非动态。

5、关于重绘(repaint)和重排(reflow)。

重绘并不一定导致重排,比如修改某个元素的颜色,只会导致重绘;而重排之后,浏览器需要重新绘制受重排影响的部分。导致重排的原因有:

  • 添加或删除DOM元素
  • 元素位置、大小、内容改变
  • 浏览器窗口大小改变
  • 滚动条出现

6、事件委托

利用事件冒泡,指定一个事件处理程序,管理某一个类型的所有事件。在DOM树中尽量搞的层次上添加一个事件处理程序,这样可以只取得一个DOM元素,添加一个事件处理程序

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

你可能感兴趣的文章
tomcat配备禁止url显示jsessionid
查看>>
IDE ,SAS,SATA,SCSI,SSD硬盘的主要区别
查看>>
Android的Framework分析---4硬件抽象HAL
查看>>
JS中字符串的相关操作
查看>>
Android版本介绍
查看>>
我的友情链接
查看>>
Exchange Server 2013之CAS服务器NLB负载均衡
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
数据导出之sqlserver-导出脚本
查看>>
【CentOS 7MySQL常用操作2】,连接MySQL#180112
查看>>
以后从这里安家了
查看>>
用Spotlight on windows 实时监控Windows服务器性能
查看>>
3大主流前端框架对比
查看>>
北京汽车、机动车年检(审)规定 时间、地点和资料查询
查看>>
LINUX下查看CPU、主板、硬盘、内存,网卡信息
查看>>
Oracle的连接与会话
查看>>
Ecshop显示商品销售数量
查看>>
Discuz x3论坛使用CDN后获取真实IP的解决方法
查看>>
input框必填星号*垂直居中变大设置
查看>>