请选择 进入手机版 | 继续访问电脑版

eyAndrew

金牌服务用户

94

主题

436

帖子

1252

积分

金牌服务用户

积分
1252
eyAndrew
金牌服务用户   /  发表于:2022-11-28 11:45  /   查看:2583  /  回复:9
需求是 我们监听 resize事件, 然后触发,refresh事件,让 canvas 重绘, 然后让当前sheet 重绘, 然后 sheet上的浮动对象重绘。


有没有 refresh的回调? sheet的repaint的回调?

9 个回复

eyAndrew
金牌服务用户   /  发表于:2022-11-28 16:09:24
沙发
本帖最后由 eyAndrew 于 2022-11-28 16:23 编辑

再问一下,refresh这个api,底层有做节流啥的么? 我目前测试关闭控制台 最大化窗口时, refresh不生效,
下面是 gif效果
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-11-28 16:15:45
板凳

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
xcymoo
超级版主   /  发表于:2022-11-28 16:49:25
地板
您这个问题和之前的一样,都是需要在refresh之后去写逻辑的,没有提供回调,我们回调主要是面向用户的UI操作的。
下面的问题,我觉得您需要在关闭控制台的时候 打断点看一下有没有进resize的回调事件,确认一下问题出现在哪一步
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-11-28 16:53:04
5#
xcymoo 发表于 2022-11-28 16:49
您这个问题和之前的一样,都是需要在refresh之后去写逻辑的,没有提供回调,我们回调主要是面向用户的UI操 ...

refresh之后,肯定要加宏任务,才能拿到重绘的dom,这样只能自己加几个宏任务 来处理。。。
第二个问题,看下我的gif,已经打印了 最新的宽高,肯定是resize监听到了。
回复 使用道具 举报
xcymoo
超级版主   /  发表于:2022-11-28 17:27:33
6#
本帖最后由 xcymoo 于 2022-11-28 17:28 编辑
eyAndrew 发表于 2022-11-28 16:53
refresh之后,肯定要加宏任务,才能拿到重绘的dom,这样只能自己加几个宏任务 来处理。。。
第二个问题 ...

spreadjs提供的接口基本都是同步的, 不需要写宏任务逻辑,就当做同步方法 按顺序写就好

resize的这个问题你可以提供一下demo吗,我本地看看~
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-11-28 17:42:35
7#
xcymoo 发表于 2022-11-28 17:27
spreadjs提供的接口基本都是同步的, 不需要写宏任务逻辑,就当做同步方法 按顺序写就好

resize的这个 ...

不太好提供demo,图表渲染的代码 挺多的。

我说下我的代码流程, 监听resize事件,然后修改spreadjs的dom的宽高,然后执行spread.refresh(),(按照您说的refresh是同步,我应该可以直接执行第2步,渲染sheet)
2 接着需要重新渲染当前的sheet,setColumnCount, setRowCount, 设置 sheet的宽高。
遍历所有单元格设置背景色。

3 拿到当前sheet的所有浮动对象,重新绘制。
回复 使用道具 举报
eyAndrew
金牌服务用户   /  发表于:2022-11-28 17:48:54
8#
感觉像是 sheet的渲染, 和 spreadjs的渲染 互相影响了。 sheet.suspendPaint 会影响 spread的渲染么?
回复 使用道具 举报
xcymoo
超级版主   /  发表于:2022-11-28 18:09:36
9#
eyAndrew 发表于 2022-11-28 17:48
感觉像是 sheet的渲染, 和 spreadjs的渲染 互相影响了。 sheet.suspendPaint 会影响 spread的渲染么?

sheet是属于spread的一部分,暂停了sheet的渲染自然会影响到spread的渲染,但是也仅限于渲染部分,最终绘制的结果是没有影响的。如果没有demo的话,信息很有限,我这边就很难给出进一步的建议了,有没有什么办法能让我看到实际的网页呢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-12-9 11:18:10
10#
请问您的问题解决了吗?如果还未解决,可以根据楼上建议上传下相关资料。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部