找回密码
 立即注册

QQ登录

只需一步,快速开始

水牛

注册会员

16

主题

38

帖子

126

积分

注册会员

积分
126
水牛
注册会员   /  发表于:2023-12-1 10:02  /   查看:950  /  回复:5
有一个30M的ssjson文件,我们从后端用ssjson的字符串传给前端再打开,发现时间很长,请问除了可以使用字符串传给前端打开的方式还有别的方式吗?比如ssjson用流文件传给前端,再从浏览器打开

5 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-5 16:11:06
推荐
水牛 发表于 2023-12-5 13:54
好的,请问一下如果后台使用ssjon可以有类似类解析吗?
var excelIo = new GC.Spread.Excel.IO();
exce ...

您好,我们没有将json转换成blob的对应方案,因为json就可以实现在前后端进行数据的交互,json转blob再传输有些多此一举的感觉,且后端传递给前端时还需要将blob再转换成json才能加载。且考虑到将json转换成blob需要用到前端浏览器的性能,由于前端性能瓶颈的限制,您这30M的文件转换成blob可能消耗的时间+传输给后端的时间可能还大于您直接将json传递的后端的时间。

我想您的目的是为了提升前后端交互的性能,同一份文件Excel比ssjson更小,也更有利于您目前的想法。

如果您确实有将ssjson转换成blob的需求,您只能通过原生的js方法来实现:
  1. const jsonData = {
  2.     // ...你的大量数据
  3. };

  4. // 将JSON对象转换为Blob
  5. const jsonBlob = new Blob([JSON.stringify(jsonData)], { type: 'application/json' });


  6. // 将Blob转换成json
  7. blob.text().then(text => {
  8.   const jsonObj = JSON.parse(text);
  9.   console.log(jsonObj);
  10. });
复制代码

评分

参与人数 1满意度 +5 收起 理由
水牛 + 5

查看全部评分

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-1 10:44:17
沙发
您好,您也可以通过数据流的形式来传递给前端进行渲染,具体实现可以参考这篇技术博客:https://gcdn.grapecity.com.cn/fo ... &extra=page%3D1
image.png712196654.png
回复 使用道具 举报
水牛
注册会员   /  发表于:2023-12-5 13:54:07
板凳
Richard.Huang 发表于 2023-12-1 10:44
您好,您也可以通过数据流的形式来传递给前端进行渲染,具体实现可以参考这篇技术博客:https://gcdn.grape ...

好的,请问一下如果后台使用ssjon可以有类似类解析吗?
var excelIo = new GC.Spread.Excel.IO();
excelIo.open(blob, function (json)
这是用excel格式的,如果是ssjon的呢?
回复 使用道具 举报
水牛
注册会员   /  发表于:2023-12-5 17:01:26
5#
Richard.Huang 发表于 2023-12-5 16:11
您好,我们没有将json转换成blob的对应方案,因为json就可以实现在前后端进行数据的交互,json转blob再传 ...

好的,谢谢
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2023-12-5 17:22:08
6#

好的,那么本贴就先结帖了,后续有新的问题欢迎继续发帖讨论
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部