如果前端一次性获取上万条数据,怎么渲染?
- 核心思想和做法是:把数据分段、一段一段的加载
- 所以为了实现这个方案,需要先将数据缓存,以便于每次获取分段数据不用再发重复请求,然后每次渲染部分内容,等用户滚动或者其他操作后再渲染下一段内容
- 如果要实现这种数据分段加载读取,比较成熟的方案有
- 1、数据分页
- 2、长列表虚拟滚动
- 数据分页比较常见,就是点击页码去加载数据。只不过不是发请求,而是从事先的缓存里获取
- 长列表虚拟滚动是指:只渲染当前视口范围内的数据,每次即将滚动后最后时又加载下一段内容,所以他也需要配合之前的数据缓存实现,每次从缓存里读取出下一段数据。实现细节上大概要有变量记录当前分段数、以及根据视口计算出每段数量,然后监听滚动事件等