找回密码
 立即注册

QQ登录

只需一步,快速开始

wall.e

注册会员

18

主题

32

帖子

164

积分

注册会员

积分
164
wall.e
注册会员   /  发表于:2021-8-16 16:18  /   查看:3483  /  回复:11
10金币
我现在的写法是
activeSheet.getRange(0,0,this.tableData.length,this.colInfo.length)                                                                                                          .locked(false)                                                                                                          .backColor('#ffffff')                                                                                                          .setBorder(that.borderNormal,{all:true})这种写法是不是有问题,数据2000多行,20多列,这个操作耗时5秒-6秒

最佳答案

查看完整内容

这边试了下,将代码修改如下: console.time('编辑开启') this.sheet.suspendPaint() //设置行列样式 this.sheet.getRange(-1,0,-1,this.colInfo.length).locked(false).backColor('#fff').setBorder(this.borderNormal,{all:true}) this.sheet.resumePaint() console.timeEnd('编辑开启') 加载时间由 2876ms缩短为1932ms。 关于行列样式您可以参考这篇文章: https://www.grapecity.com.cn/blo ...

11 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-16 16:18:28
来自 10#
本帖最后由 Lynn.Dou 于 2021-8-17 14:35 编辑

这边试了下,将代码修改如下:

console.time('编辑开启')
this.sheet.suspendPaint()
//设置行列样式    this.sheet.getRange(-1,0,-1,this.colInfo.length).locked(false).backColor('#fff').setBorder(this.borderNormal,{all:true})
        this.sheet.resumePaint()
        console.timeEnd('编辑开启')

加载时间由 2876ms缩短为1932ms。 image.png29064024.png
image.png434756163.png
关于行列样式您可以参考这篇文章:
https://www.grapecity.com.cn/blo ... ply-spreadjs-styles

这边分析代码,除了上述方式之外,也想不到其他可优化的方案了。

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-16 16:55:08
2#
您好,
如果你一次做出大量的改变, 并且不希望每次改变都去重新绘制 Spread ,
那么你可以调用 suspendPaint 暂停重绘, 完成改变之后,你可以调用resumePaint 重新激活Spread重绘。
即:
您在执行代码前后,加上sheet.suspendPaint(); 和 sheet.resumePaint();
再测试下是否仍出现耗时久问题。
具体请参考学习指南:
https://demo.grapecity.com.cn/sp ... ook/painting/purejs

另外,您标题(清除只读和样式)和内容(耗时久)看起来问题不太一致,
请问您具体想咨询的问题是什么呢?请详细的描述下。

回复 使用道具 举报
wall.e
注册会员   /  发表于:2021-8-16 17:15:22
3#
image.png255445555.png
加了之后是5-6秒,不加直接就卡着不动了,我改了下逻辑,记录了下,调整过的单元格,只重置调整的,效果好了点
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-16 17:39:54
4#
您可以提供一个可复现此问题的demo,这边看下是否还有优化空间。
附件为demo模板,可以在模板基础上添加自己的代码。

模板.zip

2.75 MB, 下载次数: 69

回复 使用道具 举报
wall.e
注册会员   /  发表于:2021-8-17 10:00:29
5#
本帖最后由 wall.e 于 2021-8-17 10:05 编辑
Lynn.Dou 发表于 2021-8-16 17:39
您可以提供一个可复现此问题的demo,这边看下是否还有优化空间。
附件为demo模板,可以在模板基础上添加自 ...

亲,我用你提供的这个我还原不出来,都能在1秒内响应,我用设计器了,我给一个新的模板。也不能完全还原,这个抽离的模板2000条数据大约4-5秒,但主逻辑是一致的,我实际应用那个得有6-8秒,那个逻辑太多,抽不动
回复 使用道具 举报
wall.e
注册会员   /  发表于:2021-8-17 10:08:08
6#
image.png808664855.png
回复 使用道具 举报
wall.e
注册会员   /  发表于:2021-8-17 10:12:35
7#
麻烦您看下

vue.zip

101.36 KB, 下载次数: 56

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-17 10:43:07
8#
如果无法复现您描述的问题的话,这边很难定位到问题原因,无法针对性的调研是否有可优化的方案。
建议您尝试整理出可复现此问题的demo,不然这边也没有更好的办法了。
回复 使用道具 举报
wall.e
注册会员   /  发表于:2021-8-17 10:45:58
9#
现在的demo是,4-5秒,和您提供的demo不同的是用的设计器初始的,用您提供的demo是500毫秒左右,算是重现吧
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部