找回密码
 立即注册

QQ登录

只需一步,快速开始

dlcnc-zmj

初级会员

19

主题

72

帖子

257

积分

初级会员

积分
257

微信认证勋章

dlcnc-zmj
初级会员   /  发表于:2019-8-22 12:02  /   查看:6668  /  回复:12
数组里带大量的计算式,在调用setArray()赋值的时候,浏览器内存暴涨,不会下降。
2000行200列的计算式,内存达到了3000兆,然后画面中断,代码里加了计算中断,在执行完所有的操作以后加了计算再开。

12 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-22 14:03:07
沙发
您好,您能否提供一个能重现问题的Demo?我们排查一下问题原因。
回复 使用道具 举报
dlcnc-zmj
初级会员   /  发表于:2019-8-22 15:14:04
板凳
KevinChen 发表于 2019-8-22 14:03
您好,您能否提供一个能重现问题的Demo?我们排查一下问题原因。
  1. var dataArray = [];
  2. var dataObj = "=IF(ISBLANK(A1), 1, 0)";

  3. var data = [];
  4. for (var index = 0; index< 200; index++) {
  5.    dataArray.push(dataObj);
  6. }

  7. for (var index = 0; index< 44; index++) {
  8.    data.push(dataArray);
  9. }

  10. dataObj = "=IF(ISERROR(N72/N14), 1, N72/N14)";
  11. var data1 = [];
  12. dataArray = [];
  13. for (var index = 0; index< 200; index++) {
  14.    dataArray.push(dataObj);
  15. }

  16. for (var index = 0; index< 510; index++) {
  17.    data1.push(dataArray);
  18. }

  19. dataObj = "=SUMIFS(N42:N81, B42:B81, 2)*N84";
  20. var data2 = [];
  21. dataArray = [];
  22. for (var index = 0; index< 200; index++) {
  23.    dataArray.push(dataObj);
  24. }

  25. for (var index = 0; index< 1290; index++) {
  26.    data2.push(dataArray);
  27. }

  28. // 描画中断
  29. spread.suspendPaint();
  30. // ?算中断
  31. sheet.suspendCalcService(false);

  32. sheet.setArray(2, 14, data, true);
  33. sheet.setArray(48, 14, data1, true);
  34. sheet.setArray(560, 14, data2, true);

  35. // 描画再?
  36. spread.resumePaint();
  37. // ?算再?
  38. sheet.resumeCalcService(false);
复制代码
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-8-22 18:47:23
地板
表中的原始数据是什么呢?比如说A1,N72,N14这些,能给个例子吗?
回复 使用道具 举报
dlcnc-zmj
初级会员   /  发表于:2019-8-22 18:56:01
5#
本帖最后由 dlcnc-zmj 于 2019-8-22 18:58 编辑
ClarkPan 发表于 2019-8-22 18:47
表中的原始数据是什么呢?比如说A1,N72,N14这些,能给个例子吗?

你好,A1是"1",N72和N14为空
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-8-22 19:01:55
6#
能不能给我个能够测试出来的数据,我这边没办法测试出来啊
image.png608930663.png
回复 使用道具 举报
dlcnc-zmj
初级会员   /  发表于:2019-8-22 19:09:18
7#
ClarkPan 发表于 2019-8-22 19:01
能不能给我个能够测试出来的数据,我这边没办法测试出来啊

除了A1为1以外,别的都没有数据,都是计算式,你那没有问题吗?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-8-22 19:17:38
8#
没有啊,结果截图给你了,秒开的,demo我也传一下,你看对不,不对的话你在上面改一下再传给我

modelV12_DEFAULT.html

3.19 KB, 下载次数: 182

回复 使用道具 举报
dlcnc-zmj
初级会员   /  发表于:2019-8-22 19:29:54
9#
ClarkPan 发表于 2019-8-22 19:17
没有啊,结果截图给你了,秒开的,demo我也传一下,你看对不,不对的话你在上面改一下再传给我

你在81行
$("#init").click(function(){ 后追加以下代码再试试
  1. sheet.setRowCount(3000);
  2. sheet.setColumnCount(300);
复制代码
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-8-23 09:36:21
10#
OK,已经重现了,我这边提交研发让他们调研一下这个问题
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部