找回密码
 立即注册

QQ登录

只需一步,快速开始

zhouhao

中级会员

69

主题

163

帖子

712

积分

中级会员

积分
712
zhouhao
中级会员   /  发表于:2021-9-1 09:39  /   查看:2437  /  回复:3
本帖最后由 zhouhao 于 2021-9-26 17:41 编辑

请问resumePaint()、repaint()、refresh()之间有什么区别?

3 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-1 09:52:14
推荐
您好,
suspendPaint是挂起绘制,在挂起绘制后,对表单执行的修改操作将不会立即生效,直到执行resumePaint时才会执行绘制。
一般用于做大量修改前后,加速渲染性能。

如果对SJS做出修改,SJS未刷新,可使用repaint方法强制刷新。
repaint 有sheet级别、workbook级别。
具体可参考学习指南:https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/workbook/painting/purejs


refresh 方法为手动刷新工作簿的布局和显示,
如动态调整外部容器大小时,windows未触发resize,所以SJS未能成功刷新,此时就可以使用refresh方法手动刷新spread布局。
可参考下方文章:
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=93161
回复 使用道具 举报
zhouhao
中级会员   /  发表于:2021-9-1 10:11:01
板凳
Lynn.Dou 发表于 2021-9-1 09:52
您好,
suspendPaint是挂起绘制,在挂起绘制后,对表单执行的修改操作将不会立即生效,直到执行resumePain ...

是否可以理解resumePaint和refresh包含repaint呢?那么resumePaint和refresh的关系又是怎么样的呢?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-9-1 11:31:40
地板
suspendPaint 和 resumePaint 是成对使用的,分别表示挂起绘制和恢复绘制。
前面提到当需要做出大量改变时,使用这两个接口,可以加速渲染性能。

这样理解,如果同时做 修改行高、改变背景色、修改value 多个行为时,每做出一个行为,SJS就会自动绘制一次。如果行为非常多,会影响渲染的性能。
这时使用suspendPaint ,SJS会先暂停绘制,待所有修改行为做完时,再使用resumePaint 恢复绘制,那么SJS只需要绘制一次即可,加速渲染性能。

repaint就是可能在某些情况下SJS不会自动刷新,那么就可以使用这个方法强制刷新sheet或spread。

上述接口可以一起理解,都是表示重绘。

refresh的作用前面已经说过了,作用就是强制刷新Spread的布局的,您参考上个回答中链接文章就可以理解了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部