最近做的一个需求,当列表大概有2万条数据,又不让做成分页,如果页面直接渲染2万条数据,在一些低配电脑上可能会照成页面卡死,基于这个需求,我们来手写一个虚拟列表 思路 列表中固定只显示少量的数据,比如60条 在列表滚动的时候不断的去插入删除dom startIndex ...
最近做的一个需求,当列表大概有 万条数据,又不让做成分页,如果页面直接渲染 万条数据,在一些低配电脑上可能会照成页面卡死,基于这个需求,研究分析前端渲染卡顿原因,准备手写一个虚拟列表。 .实现思路 列表中固定只显示少量的数据,比如 条 在列表滚动的时候不断的去插入删除dom startIndex endIndex,不断的改变这个值来获取最新的显示列表 paddingTop paddingBotto ...
2021-12-27 17:57 0 985 推荐指数:
最近做的一个需求,当列表大概有2万条数据,又不让做成分页,如果页面直接渲染2万条数据,在一些低配电脑上可能会照成页面卡死,基于这个需求,我们来手写一个虚拟列表 思路 列表中固定只显示少量的数据,比如60条 在列表滚动的时候不断的去插入删除dom startIndex ...
//temple部分 js部分 样式 总结 总结: 思路很简单: 一、 拿到所有数据应该占用的高度。比如1万条数据,每条占40px,占用高度应为1万*40; 二、拿到展示区域的高度,比如我想展示50条数据,展示高度即为50*40; 三、拿到屏幕滚动的距离,用滚动的距离 ...
https://blog.csdn.net/wu1737149371/article/details/88329830 ...
window.requestAnimationFrame()告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数作为参数,该回调函数会在 ...
主页面文件html Scrollbar.js文件 ...
关键点:不卡顿,交互流畅 一、最传统、最简单粗暴的方式 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport ...
原理:渲染大数据时,合理使用createDocumentFragment和requestAnimationFrame,将操作切分为一小段一小段执行。 documentFragment: 是一个虚拟的Dom列表,可以储存待处理的xml片段(el元素),因为他不在真实的Dom ...
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <me ...