优化 少设置全局变量,少全局查找(如需要全部变量,全局变量数据局部化)少闭包,及时清除定时器,事件委托,循环优先使用do...while...(合并循环变量和条件),for 循环减少长度获取,文档碎片代替append 代码执行 工具:JSBench 减少判断层级 减少作用域链查找层级 // 全局变量 ...
分类:
其他好文 时间:
2021-06-19 19:10:05
阅读次数:
0
(1)回流:当dom元素的结构或位置发生改变(删除,增加,改变位置)都会引发回流,所谓的回流就是浏览器抛弃原有的数据结构和样式,从新进行dom。非常耗能。 (2)重绘:当某个dom元素样式更改(位置没变,颜色等变了),浏览器重新渲染这个元素。 解决方法: (1)基于文档碎片(虚拟内存中开辟的一个容器 ...
分类:
其他好文 时间:
2020-10-29 10:25:37
阅读次数:
19
首先我要说一下打印的思路: 1.将页面dom保存起来存在文档碎片里面 let fragment = this.nodeToFragment(document.body) 2.将生成的图片放在body里面(我在开发的过程中遇到了,调用打印方法的时候发现不能将背景色进行打印,当然这需要在 打印里面去设置 ...
分类:
其他好文 时间:
2020-02-18 13:12:24
阅读次数:
270
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv ...
分类:
其他好文 时间:
2019-12-21 18:29:43
阅读次数:
93
js操作DOM时发生了什么? js每次操作DOM都出发了回流,这非常的消耗性能。 什么是文档碎片容器? document.createDocumentFrgement() 用于暂时存放创建的DOM元素。 文档碎片容器有什么用? 将需要添加到body中的元素先添加到碎片容器中,再把碎片容器插入到对应的 ...
分类:
其他好文 时间:
2019-07-27 09:41:07
阅读次数:
90
一.什么是渲染数据 就是HTML中要显示的数据是通过js来实现的而不是直接在HTML中输入数据,这个过程叫做数据渲染 二.渲染数据的方式 案例分析: 1.字符串拼接(最为常用的方式) 优点:只进行了一次Dom回流 缺点:原有dom的事件都会丢失 原因:就在与innerHTML这个属性,这个属性是返回 ...
分类:
其他好文 时间:
2019-03-14 16:44:44
阅读次数:
174
1.模板 就是字符串拼接 2.文档碎片 优点: 既不影响原有dom的属性,也只回流一次。 3.字符串拼接 优点:只进行了一次Dom回流 缺点:原有dom的事件都会丢失 原因:就在与innerHTML这个属性,这个属性是返回或设置Dom中的内容,以字符串形式返回,拼接完之后是string类型,而onm ...
分类:
Web程序 时间:
2019-03-14 15:07:49
阅读次数:
247
渲染数据的四种方式: 1、字符串拼接 案例: · 字符串拼接的优点:只进行一次Dom回流 缺点:原有Dom的事件都会丢失 原因:innerHTML 这个属性返回或设置Dom中的内容 ,以字符串返回,所以这些onmouse 系列事件就会消失。 (补充:DOM 回流 : 每当对Dom元素进行增删改的时候 ...
分类:
其他好文 时间:
2019-03-14 15:03:55
阅读次数:
205
染数据的方法 1)、字符串拼接, 最常用的方法 优点:只进行一次dom回流 缺点:原有dom的事件都会丢失 原因:就在于innerHTML这个属性,这个属性是返回或设置dom中的内容,以字符串形式返回,拼接完之后是string类型,而一些事件属性是dom元素对象身上的,所以这些那些事件属性就会丢失。 ...
分类:
其他好文 时间:
2019-03-14 14:56:02
阅读次数:
180
文档碎片是什么: 如果我们要在一个ul中添加100个li,如果不使用文档碎片,那么我们就需要使用append经常100次的追加,这会导致浏览器一直不停的渲染,是非常消耗资源的。但是如果我们使用文档碎片了,我们可以先将100个li添加到文档碎片中,然后直接把这个文档碎片追加到ul中即可。所以文档碎片其 ...
分类:
编程语言 时间:
2019-01-13 13:06:39
阅读次数:
187