【17.1.2】sjs类型打开效率
本帖最后由 Joestar.Xu 于 2024-7-31 10:58 编辑调研编号:SJS-25719
示例已上传至附件
代码:https://jscodemine.grapecity.com/sample/LmEG_UmnTU_Hvt6sVPP_Ng/
描述:
1、示例中59812.sjs在使用openMode=lazy时spread.open的时间变慢很多(7000毫秒左右),比59812.json还要慢,openMode=normal或incremental正常(1100毫秒左右)
2、将示例中【MTD回收明细】这个sheet页中的切片器删除后,2种类型(60304.sjs,60304.json)打开都变快了,但sjs的lazy模式还是会比normal和incremental慢
疑问:
1、sjs的lazy模式是否普遍比normal和incremental打开要快?大幅影响示例中打开慢的原因是什么?
2、为什么删除示例中指定切片器后打开变快了?(删除其他的切片器没有效果)
3、sjs模式使用spread.open方式打开如果想用增量计算,代码要怎么实现?(与示例无关)
您好,您描述的情况我了解了,这边调研一下,后续有进展我会在本贴中回复您。 您好,关于疑问三,可以参考以下代码:
Joestar.Xu 发表于 2024-7-31 10:57
您好,关于疑问三,可以参考以下代码:
incremental这个是增量加载还是增量计算呢?
ssjson在fromjson的options的增量加载是incrementalLoading,增量计算是incrementalCalculation,这2个功能是包含关系还是独立关系呢?
另外sjs的lazy模式是指优先渲染活动表单,非活动表单不渲染的话公式还会计算吗? 您好,
1、incremental这个是增量加载还是增量计算呢?
——————————————————
incremental是增量加载,如果要在增量加载的同时开启增量计算的话,可以参考以下代码:
let sjsFile = document.getElementById("file").files;
spread.open(
sjsFile,
function (e) {
successCallBack();
},
function (e) {
console.log(e);
},
{
openMode: GC.Spread.Sheets.OpenMode.incremental,
incrementalCalculation: true,
}
);
2、ssjson在fromjson的options的增量加载是incrementalLoading,增量计算是incrementalCalculation,这2个功能是包含关系还是独立关系呢?
————————————————————
incrementalLoading是打开文件的模式,incrementalCalculation是公式引擎的一个功能,二者不冲突。
3、另外sjs的lazy模式是指优先渲染活动表单,非活动表单不渲染的话公式还会计算吗?
————————————————————
我这边做了一个简单的Demo,在sheet2中引用sheet1的数据,开启懒加载后导入,修改sheet1的数据,此时切换到sheet2,sheet2的数据没有发生改变,所以结论是不会。 Joestar.Xu 发表于 2024-8-1 09:43
您好,
1、incremental这个是增量加载还是增量计算呢?
对于默认打开sheet页,如果打开方式使用lazy和incremental会计算当前sheet页的所有公式吗?
我看其他帖子中对增列加载描述是:【增量加载之后,SpreadJS显示部分已加载的内容,用户此时可以对表格进行操作,但此时表单是还没加载完的,还是处于加载状态。】如果表单没加载完的话部分公式是不是就不会计算? 您好,
1、对于默认打开sheet页,如果打开方式使用lazy和incremental会计算当前sheet页的所有公式吗?
————————————————————————
我这边做了一个简单的测试,在关闭了计算引擎后,设置A1单元格的公式为Now(),然后导出这个SJS文件。
再开启懒加载和增量加载后导入这个SJS文件,此时A1单元格的公式没有计算。
但是如果开启了“导入后自动计算”,就可以计算出A1单元格的结果了。
2、如果表单没加载完的话部分公式是不是就不会计算?
————————————————————
根据目前的测试结果来看,导入后是否计算仅受“导入后自动计算”选项影响。 Joestar.Xu 发表于 2024-8-1 17:46
您好,
1、对于默认打开sheet页,如果打开方式使用lazy和incremental会计算当前sheet页的所有公式吗?
我大概了解了,感谢回复。顺便问下删除指定切片器打开变快的问题有进展了吗?有没有啥临时解决方案呢? 这个问题涉及到SpreadJS底层对于LazyMode的逻辑控制,我们目前正在调研并且已经有了初步的进展,但是无法为您提供临时的解决方案,我们会在后续的版本中优化此处的逻辑,待有进一步的进展我会在本帖中回复您。 您好,该问题已在17.1.4版本中修复,您可以升级后再测试一下。
页:
[1]
2