找回密码
 立即注册

QQ登录

只需一步,快速开始

指掌天下

注册会员

3

主题

6

帖子

27

积分

注册会员

积分
27
指掌天下
注册会员   /  发表于:2024-1-15 16:01  /   查看:2191  /  回复:8
本帖最后由 Richard.Huang 于 2024-1-22 16:56 编辑

产品:SpreadJS
版本:V16

【需求背景】项目中激活单元格进入编辑操作的模式为快速编辑,进入单元格或者点击单元格时进入编辑状态,且项目中的单元格因为需求上存在需要自定义渲染的部分,大多数单元格均为自定义单元格。

【遇到的问题】在进行点击单元格或者键盘上下左右切换单元格时,代码中通过 sheet.endEdit、sheet.setActiveCell及sheet.startEdit 三个方法完成切换且马上进入编辑状态的操作,但是执行过程中发现 endEdit 会造成可视区域的repaint,setActive及startEdit也会造成部分repaint,导致部分配置稍低的电脑出现卡顿。即使不改变单元格录入值,仅执行切换操作仍然拥有这种卡顿感。影响用户体验。
【目前的优化处理】为了处理以上问题,目前采取的方案为在以上三个方法执行时停止绘制,执行完成后重新恢复绘制,以此减少repaint执行次数,但只是降低卡顿感,任然避免不了endEdit带来的repaint导致的卡顿感。
【需要解决的问题】是否存在某种方式可以在编辑执行endEdit时,在单元格值未发生改变时不去执行这个repaint,或者是否为使用方式不正确造成的问题,是否有比较好的处理方案处理这种快速编辑的场景。

8 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-15 17:45:25
沙发
您好,您提供一下可以复现您问题的Demo,这边结合实际的代码和效果复现后调研一下是否还有更好的优化方案。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-16 16:29:43
板凳
您好,请问您的问题是否已经解决,如果仍未解决,欢迎继续回帖,我们来协助调研。
回复 使用道具 举报
指掌天下
注册会员   /  发表于:2024-1-18 10:24:12
地板
你好,问题暂时还未解决,因为使用场景原因,编辑组件与项目代码较为耦合,拆分提供demo较为复杂。抱歉无法很好的描述问题。我想先确定自定义渲染的单元格过多是否会造成性能问题,造成编辑模式切换时性能问题的可能会有哪些原因? 附一个性能火焰图,不知道是否存在参考价值
image.png163207091.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-18 11:50:08
5#
您好,自定义单元格渲染是否会对性能造成影响取决于自定义单元格本身,如果自定义单元格本身逻辑复杂且需要绘制大量的元素,那么是会对性能造成一定影响的。
回复 使用道具 举报
指掌天下
注册会员   /  发表于:2024-1-18 16:51:32
6#
Joestar.Xu 发表于 2024-1-18 11:50
您好,自定义单元格渲染是否会对性能造成影响取决于自定义单元格本身,如果自定义单元格本身逻辑复杂且需要 ...

我们的单元格只是根据行数据改变一些样式以及绘制一些标识图标之类的,同时单元格中会有一些格式化value的处理,那么可能造成退出编辑模式、编辑模式快速切换时出现卡顿的可能还会有哪些原因呢?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-18 17:37:39
7#
如果只是一些简单的自定义单元格的话就不知道还会有什么情况会影响性能了,需要结合实际的代码和Demo来判断。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-1-19 11:30:07
8#
您好,请问您描述的问题是否已经解决,如果仍未解决,欢迎继续回帖,我们来协助调研。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-1-29 17:20:57
9#
注意到楼主长时间未回复,那本贴就先结贴了,有问题欢迎另开新帖交流
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部