当时想到的方案大致如下:
采用懒加载+分页(前端维护懒加载的数据分发和分页)
使用虚拟滚动技术(目前react的antd4.0已支持虚拟滚动的select长列表)
懒加载和分页方式一般用于做长列表优化,...类似于表格的分页功能, 具体思路就是用户每次只加载能看见的数据, 当滚动到底部时再去加载下一页的数据...., 代码已经基本可用了, 下面来介绍具体实现方案:
懒加载+分页方案 懒加载的实现主要是通过监听窗口的滚动, 当某一个占位元素可见之后去加载下一个数据,原理如下:
这里我们通过监听window的scroll...至于分页的逻辑, 原生javascript实现分页也很简单, 我们通过定义几个维度:
curPage当前的页数
pageSize 每一页展示的数量
data 传入的数据量
有了这几个条件,我们的基本能分页功能就可以完成了...至于虚拟长列表的实现笔者在开头已经点过,这里就不详细介绍了, 对于更大量的数据,比如100万(虽然实际开发中不会遇到这么无脑的场景),我们又该怎么处理呢第一个点我们可以使用js缓冲器来分片处理100万条数据