Skip to content

纵向虚拟滚动优化 #3151

@touch-xzc

Description

@touch-xzc

这个需求解决了什么问题:

这个需求用于改善纵向虚拟滚动表现。
从3.10.x更新3.19.x后,横向和纵向虚拟滚动比较卡顿。
查看源码发现,纵向虚拟滚动时会多次执行wheelScrollTopTo,添加多个requestAnimationFrame回调函数。
减少requestAnimationFrame回调函数执行次数后,纵向虚拟滚动表现有所改善。

建议的 API 是什么样的:

无新api,需要改动/es/table/src/methods.js的wheelScrollTopTo

是否已有其他不错的替代方案:

我在使用上网沙箱提交issue,无法上传文件。

修改思路:

  1. wheelScrollTopTo方法向internalData.data_wheelScrollTopTo.toDeal(数组)添加待处理的滚动操作信息({startTime, countTop, diffNum});
  2. 检查toDeal元素数量是否大于1,不大于1则执行requestAnimationFrame(step),大于1则不执行;
  3. step函数根据toDeal计算出本次总滚动距离(每个元素对应的滚顶距离算法不变),执行一次wheelScrollTopTo的cb。

实测性能有所改善

是否使用当前最新版本?

  • 我已确认是使用当前的最新版本。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions