请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

yangchen

注册会员

9

主题

21

帖子

141

积分

注册会员

积分
141
yangchen
注册会员   /  发表于:2021-3-1 15:43  /   查看:1615  /  回复:7
拖拽列宽并使行高自适应又点卡顿,尤其1000行以上

YangChen0619-my-spread-master.zip

334.62 KB, 下载次数: 7

7 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-3-1 16:34:16
沙发
这边测试了您的demo,分别测试了100行和1000行,由于用了循环以及前端性能的限制会出现一些卡顿。
在列宽改变会触发对应的事件,您同时里面还有别的逻辑,所以有所影响。这边目前比较好的建议就是在监听事件中也加上暂停绘制与回复绘制。
回复 使用道具 举报
yangchen
注册会员   /  发表于:2021-3-1 16:45:09
板凳
DerrickJiao 发表于 2021-3-1 16:34
这边测试了您的demo,分别测试了100行和1000行,由于用了循环以及前端性能的限制会出现一些卡顿。
在列宽 ...

我已经加了, 在 setRowHeight 方法里
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-3-1 18:02:05
地板
本帖最后由 DerrickJiao 于 2021-3-1 18:27 编辑
yangchen 发表于 2021-3-1 16:45
我已经加了, 在 setRowHeight 方法里

我们这边会做进一步调研,看下有没有其他的优化方案,此贴为您改为保留处理,有进展会在本帖更新。(SJS-7792)
回复 使用道具 举报
yangchen
注册会员   /  发表于:2021-3-2 09:21:45
5#
DerrickJiao 发表于 2021-3-1 18:02
我们这边会做进一步调研,看下有没有其他的优化方案,此贴为您改为保留处理,有进展会在本帖更新。(SJS-7 ...

好的 十分感谢
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-3-2 09:48:48
6#

经调研,在1000行x100列的示例代码中,绑定了ColumnWidthChanged事件,在事件处理程序方法中,调用setRowHeight方法。

在setRowHeight方法中,又循环行并调用autoFitRow API。因此,一旦调整列的大小,它将调用autoFitRow 1000次。

autoFitRow将测量该行的所有单元格文本高度,这意味着,一旦调整一列的大小,SJS将计算100 * 1000个单元格。(自适应行高应同时考虑可见区域和不可见区域)。所以拖拽列宽会比较慢。、

请问示例的代码是否关联到您项目的实际使用呢?您的实际需求是什么呢?
回复 使用道具 举报
yangchen
注册会员   /  发表于:2021-3-2 10:19:42
7#
本帖最后由 yangchen 于 2021-3-2 10:20 编辑
DerrickJiao 发表于 2021-3-2 09:48
经调研,在1000行x100列的示例代码中,绑定了ColumnWidthChanged事件,在事件处理程序方法中,调用setRow ...

我得实际需求就是在拖拽列宽和自动换行之后 单元格的内容不能被遮挡 就是行高自适应
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-3-2 11:01:25
8#
yangchen 发表于 2021-3-2 10:19
我得实际需求就是在拖拽列宽和自动换行之后 单元格的内容不能被遮挡 就是行高自适应

了解,我们会将这个作为一个提升性能的需求点提给研发,预计会在后续版本加强这点。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部