找回密码
 立即注册

QQ登录

只需一步,快速开始

viperous_devil
金牌服务用户   /  发表于:2019-2-26 10:20  /   查看:5293  /  回复:10
本帖最后由 viperous_devil 于 2019-2-26 10:41 编辑

需求要求一次将5万条的数据直接渲染到界面上,各种样式,合并,而且列数也很多,大概50多,然后界面就报out of memory了,这个可以提供什么帮助吗?

10 个回复

倒序浏览
viperous_devil
金牌服务用户   /  发表于:2019-2-26 10:53:05
沙发
还有就是上一次的数据好像清不掉缓存,导致同样的数据,刷新第三次,就out of memory了
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-26 11:37:22
板凳
您好,这个问题需要使用您的数据来重现一下,请您把有问题的文档上传到附件,让我们分析一下。
回复 使用道具 举报
viperous_devil
金牌服务用户   /  发表于:2019-2-26 14:55:39
地板
KevinChen 发表于 2019-2-26 11:37
您好,这个问题需要使用您的数据来重现一下,请您把有问题的文档上传到附件,让我们分析一下。

附件是你想要的文件

新建文件夹.rar

1.94 MB, 阅读权限: 150, 下载次数: 5

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-26 17:19:42
5#
您好,注意到您提供的代码和数据是依赖于后台的,我们这边无法正常运行,

所以没有办法调试。您的代码逻辑也比较复杂,因此只阅读代码还无法确定具体哪里出了问题。

您可以在chrome的Profiles工具检查一下,看看哪里出现了内存泄漏。

具体方法可以参考一下这篇博客:

https://blog.csdn.net/jlhx123456/article/details/49720171
回复 使用道具 举报
viperous_devil
金牌服务用户   /  发表于:2019-2-26 19:03:38
6#
KevinChen 发表于 2019-2-26 17:19
您好,注意到您提供的代码和数据是依赖于后台的,我们这边无法正常运行,

所以没有办法调试。您的代码逻 ...

对于这个问题,我们这边专门写了一个纯前端的 静态网页,在这个项目的html路径下的test.html 文件,使用浏览器打开,然后点击按钮就会开始渲染,在按钮的下方进行展示,第二次点击之后浏览器就会崩溃,请帮忙看下问题所在
图片.png197588805.png

untitled.rar

4.92 MB, 阅读权限: 150, 下载次数: 2

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-27 09:24:45
7#
您好,正在为您排查问题,请稍后关注本帖。
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-27 11:29:27
8#
您好,刚才与您电话沟通过这个问题,我把相关资料贴到本楼,有问题欢迎继续沟通。

1、您提供的代码,我修改了几个地方,对性能影响不大,现上传到附件。

2、SpreadJS样式设置,请参考技术博客:

https://www.grapecity.com.cn/blogs/how-to-understand-and-apply-spreadjs-styles

3、SpreadJS 获取Workbook实例的方法,以及销毁实例的API:

获取当前页面上指定div的方法:

  1. var spread = GC.Spread.Sheets.findControl("btnBoxTable");
复制代码


销毁实例的方法:

http://help.grapecity.com/spread/SpreadSheets12/webframe.html#SpreadJS~GC.Spread.Sheets.Workbook~destroy.html

untitled.zip

5.99 MB, 下载次数: 74

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-27 18:31:40
9#
您好,刚才ClarkPan与您通过电话了,我们又再次针对您的逻辑进行了优化的尝试。

实际上以您目前的实现逻辑走,没有什么可优化的空间,建议您采用模板+数据绑定的方式来实现。

具体方法是:

1、把表格的样式定义为模板文件,导出为json,保存到您的后台。实际上针对您Demo中的样式,

可以分别为行、列设置一些边框与样式即可。

2、数据以数组形式组织,具体数据结构可以参考学习指南:

https://demo.grapecity.com.cn/Sp ... s/sheetLevelBinding

3、针对合并单元格,可以单独封装一个数组,数据绑定不会影响合并单元格,您可以先执行数据绑定,

再设置合并单元格。
回复 使用道具 举报
viperous_devil
金牌服务用户   /  发表于:2019-3-4 14:32:02
10#
好的,感谢贵司的帮忙
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部