博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
性能优化小方法
阅读量:6925 次
发布时间:2019-06-27

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

1,事件篇 采用事件委托的方式定义事件比不采用委托的方式会减少对dom的引用,从而节约内存。 当dom元素从页面移除后,使用removeEventListener将元素对事件处理函数解除引用,从而释放事件处理函数所占的内存。

2,闭包内存泄漏的解决办法 闭包保持对其定义其的函数环境中的变量的引用,容易造成内存泄漏,写代码时可以解除引用,例如 function han(){ var ele=document.getElementById('id'); var id=ele.id; ele.οnclick=function(){ alert(id) } ele=null } 定期的回收变量,从而释放内存

3,避免重绘重排 (1)避免使用如下获取样式 ● offsetTop、offsetLeft、offsetWidth、offsetHeight ● scrollTop、scrollLeft、scrollWidth、scrollHeight ● clientTop、clientLeft、clientWidth、clientHeight ● getComputedStyle() ● getBoundingClientRect

(2)将样式写在字符串中,批量设置,避免单次的设置 (3)修改DOM时可使其隐藏暂时脱离文档流 (4)使用文档片段(document fragment)在当前DOM之外构建一个子树,再把它拷贝回文档 (5)使用css3硬加速,避免回流重绘 常见的触发硬件加速的css属性: ● transform ● opacity ● filters ● Will-change

转载于:https://juejin.im/post/5c7fa4a16fb9a049fa1087b4

你可能感兴趣的文章
Windows下Kettle定时任务执行并发送错误信息邮件
查看>>
【转】强化学习(一)Deep Q-Network
查看>>
文件内容合并
查看>>
全局光照技术解析Global Illumination Explained
查看>>
未来之诗
查看>>
(原創) 使用preprocessor directive留住debug code (.NET) (C#)
查看>>
(轉貼) 未來台北捷運路線圖 (News)
查看>>
一个工作流程启动的支持事务的存储过程
查看>>
流程 - 发布【敏捷方法之Scrum v0.2.pdf】
查看>>
STM32学习笔记(12)-DMA初步
查看>>
Java Socket例程1
查看>>
使用TortoiseSVN管理个人文档和项目代码
查看>>
TP复习12
查看>>
『原创』手把手教你用c#做个Splash(启动屏幕)
查看>>
oracle 基本操作
查看>>
Java问题抽象和递归(母羊生母羊问题为例)
查看>>
Pro Android 4 第五章 理解Intent
查看>>
用python的minidom解析xml(转载)
查看>>
费马小定理在公钥加密中的应用及原理
查看>>
使用 TestLink 进行测试管理(转载)
查看>>