【记录】记一次优化时间线卡顿处理思路

公司有这样的应用场景, 需要按时间段来分类图片, 然后各个分类之间还有联系, 因为有可能上一个分段的后面一部分图片和下一个分段的钱一部分图片在同一个分页。

2019-09-10-20-36-59

打开某一分类:
2019-09-10-20-52-42

在这种场景下, 我们需要考虑:

  1. 如何把归类的图片同时保持相应的顺序成一组
  2. 当我打开并不是连续的分段时, 中间的分段如何空出来, 以便于后续插入, 同时插入后还要保证 1
  3. 打开一个分类时会加载大量图片, 此时加载资源会阻塞网络, 图片归类计算会阻塞进程, 图片量大的时候性能会出问题
  4. 当用户滚动时, 需要加载分页
  5. 滚动时分页加载的数据, 不能和用户主动打开时的数据冲突重复

解决思路

  1. 首先可以创建一个数组或是字典, 存储已加载的页码, 用来过滤重复加载的情况
  2. 以用户展开指定操作为优先, 滚动加载数据为次要, 当用户滚动时 , 我们不要立即加载, 先存在一个队列里, 设置一个延迟时间, 在这段时间内, 用户有任何和加载相关的操作就将 分页的请求无限期延后, 直到在一段时间内都无任何操作后, 才开始从队列中取出需要加载的分页, 挨个加载(注意不要一起加载, 加载图片会阻塞网络)。
  3. 大图索引问题, 维护一个二为数组 和一个一维数组, 一维数组用来给大图使用,因为大图需要连续的滑动下一页操作, 二位数组用来渲染页面
你的支持将鼓励我继续创作