最近做的一个需求,当列表大概有5万条数据,又不让做成分页,如果页面直接渲染5万条数据,在一些低配电脑上可能会照成页面卡死,基于这个需求,研究分析前端渲染卡顿原因,准备手写一个虚拟列表。 1.实现思路 列表中固定只显示少量的数据,比如60条 在列表滚动的时候不断的去插入删除dom ...
lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset UTF gt lt meta name viewport content width device width, initial scale . gt lt meta http equiv X UA Compatible content ie edge gt lt t ...
2019-04-20 00:08 2 1039 推荐指数:
最近做的一个需求,当列表大概有5万条数据,又不让做成分页,如果页面直接渲染5万条数据,在一些低配电脑上可能会照成页面卡死,基于这个需求,研究分析前端渲染卡顿原因,准备手写一个虚拟列表。 1.实现思路 列表中固定只显示少量的数据,比如60条 在列表滚动的时候不断的去插入删除dom ...
最近做的一个需求,当列表大概有2万条数据,又不让做成分页,如果页面直接渲染2万条数据,在一些低配电脑上可能会照成页面卡死,基于这个需求,我们来手写一个虚拟列表 思路 列表中固定只显示少量的数据,比如60条 在列表滚动的时候不断的去插入删除dom startIndex ...
Window.requestAnimationFram() 告诉浏览器,你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画 具体思路: ...
window.requestAnimationFrame()告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在 ...
第一种方法 第二种 用requestAnimationFrame 替换setTimeout 每次往ul添加元素时会发生重绘和重排 用文档脆片去优化,最后才插入 ...
主页面文件html Scrollbar.js文件 ...
原理:渲染大数据时,合理使用createDocumentFragment和requestAnimationFrame,将操作切分为一小段一小段执行。 documentFragment: 是一个虚拟的Dom列表,可以储存待处理的xml片段(el元素),因为他不在真实的Dom ...
//temple部分 js部分 样式 总结 总结: 思路很简单: 一、 拿到所有数据应该占用的高度。比如1万条数据,每条占40px,占用高度应为1万*40; 二、拿到展示区域的高度,比如我想展示50条数据,展示高度即为50*40; 三、拿到屏幕滚动的距离,用滚动的距离 ...