找回密码
 立即注册

QQ登录

只需一步,快速开始

Fiooona
论坛元老   /  发表于:2020-2-3 18:20  /   查看:2834  /  回复:0
本帖最后由 Fiooona 于 2020-2-4 10:56 编辑

SpreadJS性能怎么样?这个问题在SpreadJS官网中有个性能演示的例子:
这个例子中5万行数据仅需0.1秒左右可以完成加载。
image.png256019591.png
实际应用中SpreadJS的性能与很多因素有关,比如数据中是否有公式、样式、条件格式等。

在写入数据、样式时出现卡顿?
大多数时候, 在你改变 Spread 之后, 控件会自动刷新以达到重绘和更新状态的目的。 可是, 如果你一次做出大量的改变, 并且不希望每次改变都去重新绘制 Spread , 那么你可以调用 suspendPaint 暂停重绘, 完成改变之后,你可以调用resumePaint 重新激活Spread重绘:
  1. var spread = GC.Spread.Sheets.findControl(document.getElementById('ss'));
  2. spread.suspendPaint();
  3. spread.addSheet(0);
  4. spread.fromJSON(json);
  5. spread.resumePaint();
复制代码
暂停绘制有workbook级别的接口:spread.suspendPaint(),还有表单级别的sheet.suspendPaint()

为什么我导入Excel/JSON很慢?
出现导入慢的情况建议先用在线表格编辑器:在线表格编辑器链接地址
打开您的表单,如果导入没问题考虑可能是您的代码逻辑问题或者是SpreadJS版本过旧,可以提供下您的能复现问题的代码及产品的版本号。
如果还是有导入慢的问题可以从以下几方面入手:
1 调用fromJSON时传入参数jsonOptions
  1. var jsonOptions = {
  2.        ignoreFormula: true, // 导入JSON时是否忽略公式,默认为false
  3.        ignoreStyle: true, // 是否忽略样式,默认为false
  4.        frozenColumnsAsRowHeaders: true, // 是否将冻结列作为行头,默认为false
  5.        frozenRowsAsColumnHeaders: true, // 是否将冻结行作为列头,默认为false
  6.        doNotRecalculateAfterLoad: true //导入JSON后是否重新计算,默认为重新计算
  7.     }
复制代码
分别验证ignoreFormulaignoreStyledoNotRecalculateAfterLoad传入false 时是否可以改善载入慢的问题,这三个参数分别代表是否忽略公式、忽略样式、载入后是否重新计算公式
2 如果做了以上的验证还有问题可以将表单上传至GCDN SpreadJS的求助中心板块:求助中心链接地址
我们会针对具体的表单进行分析,定位问题。

SpreadJS最多能显示多少表单?对多能显示多少行、多少列?
SpreadJS默认是有200行,20列,可以通过setColumnCount、setRowCount设置行、列数,SpreadJS可以有无限行、无限列,对sheet页的数量也没有限制。

组件化表格编辑器(预览版)试用进行中,点击了解详情!
请点击评分,对我的服务做出评价!5分为非常满意!

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部