Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;存储空间不足,无法完成此操作";-加载JSON文件时出现JQuery错误_Jquery_Json_Memory_Out Of Memory_C3.js - Fatal编程技术网

&引用;存储空间不足,无法完成此操作";-加载JSON文件时出现JQuery错误

&引用;存储空间不足,无法完成此操作";-加载JSON文件时出现JQuery错误,jquery,json,memory,out-of-memory,c3.js,Jquery,Json,Memory,Out Of Memory,C3.js,我正在使用C3图表加载3个JSON文件来显示数据 当页面加载时,我使用AJAX加载3个JSON文件,我们必须使用IE11 当页面加载时,我总是在jQuery文件中收到这样一个错误:“没有足够的存储空间来完成此操作” 我应用了一个将禁用缓存的代码,但是,它会在短时间内工作,然后出现错误。拜托,你能坚持我吗?我的团队和我一直在为这个错误寻找解决方案 这个问题有解决办法吗?或者是否有一个库可以在页面加载期间管理其内存 仅供参考 这3个JSON文件的总MB为140mb。下面是我用来获取JSON文件的代码

我正在使用
C3图表
加载3个JSON文件来显示数据

当页面加载时,我使用AJAX加载3个JSON文件,我们必须使用IE11

当页面加载时,我总是在jQuery文件中收到这样一个错误:“没有足够的存储空间来完成此操作”

我应用了一个将禁用缓存的代码,但是,它会在短时间内工作,然后出现错误。拜托,你能坚持我吗?我的团队和我一直在为这个错误寻找解决方案

这个问题有解决办法吗?或者是否有一个库可以在页面加载期间管理其内存

仅供参考

这3个JSON文件的总MB为140mb。下面是我用来获取JSON文件的代码。我需要这些文件使c3图表工作,并在单击条形图时获取信息。最后两个AJAX只是将结果存储到JavaScript对象中


谢谢大家!

在我看来,你需要为这个问题想一个不同的方法。一次加载140mb的数据是不可能的。也许在2117年这将是正常的,但今天不是这样

我想这一定是一个你需要展示的大箱子。因此,在该场景中,您应该将其分解为几个部分,仅在请求时加载。例如,您可以一次发送20~50行,然后根据用户的选择执行另一次选择,为下一页带来新的json


我可能在这里推断这些假设,对此我很抱歉,但如果仍然在大表场景中,您担心过滤器,请不要担心。您始终可以使用手头的筛选器对数据库执行新请求。这将加快搜索速度。

我已经解决了我的问题。是的,最好的方法是在后端(JAVA端)加载这些JSON文件。因此,当我单击C3图表中的条形图时,我所需要的只是获取索引号。获取该索引并使用Ajax调用另一个JSP文件,以将索引值发送到java方法中。索引值将从JAVA中的JSON对象获取数据(JSON文件已经在JAVA端加载并存储到JavaBean getter/setters中)。然后将数据取回并发送响应。工作正常,我点击刷新超过15次,我没有看到这个错误。我希望这能很好地解释


谢谢大家!

您正在加载140Mb的数据。那是你的问题。您需要找到一种在单个请求中加载较少数据的方法。分页、过滤等。140 mb的数据实在太多了,您是否只得到有用的数据?如果任意轴假设x具有某个范围,则可以进行范围筛选,然后显示在范围中选择的数据,在private brawser中尝试一次,不要反复重新加载页面。首先完全关闭IE,运行IE 64位模式谢谢你的回复。是的,3个JSON文件中的数据来自一个excel电子表格,其中有超过10万行。我们使用JAVA将excel电子表格解析为JSON文件格式,以便在与c3图表交互时获取特定数据。例如:y轴是项目数量,x轴是72小时。单击栏可查看该小时的详细项目列表。感谢您的回复!是的,该功能用于显示50个数据,向下滚动时可加载50个以上的数据。(我正在为JSON细节文件使用一个切片函数)。我在想,当单击条形图查看详细信息时,我可以从条形图中获取索引,而不是加载140MB。将该索引用于ajax调用java文件。在java文件中,获取该索引并使用json文件获取json对象(数据),然后发送该json对象的响应以显示详细信息。这是一个好方法吗?那么,你基本上是在告诉我你拥有的50行有140MB???一定是出了什么事。。。在我发布第一个答案之前,我没有你的其他评论。既然我知道这是一个电子表格,我建议您只需将其导入数据库表中,然后每次执行常规的老式选择前50名。难道不能这样做吗?这将极大地帮助您解决此开销。很抱歉造成混淆。不,这3个JSON文件总共有140MB。每个文件都有不同的格式,因此我可以根据c3图表和表格上的内容获取数据。获取和显示数据很好,但有时浏览器在加载页面时加载这3个json文件时会崩溃。我这样做是因为我将在与c3图表交互时准备好这些文件。我想不是在前端加载json文件,而是在java端加载它。不确定这是否是一个糟糕的方法。这方面我是新手。。谢谢大家的回应!我现在看到了!不,这实际上是个好办法。服务器端的任务就是重的东西。当需要时,使用前端在java后端获取内容,但是获取小数据是必须的。你可以使用ajax请求。太棒了!我将继续采用这种方法。如果一切顺利与否,我会公布我的状态。非常感谢。
$.ajax({
  url: "data/parsedAfterBlueBarClicked.json",
  type: "GET",
  dataType: "json",
  complete: function() { 
    //Remove the loading percentage div....
  },
  progress: function(evt) {
    if (evt.lengthComputable) {
      $(".loadingText").html("Loading... " +  parseInt( (evt.loaded / evt.total * 100), 10) + "%");            
    } else {
      console.log("Length not computable.");
    }
  },
  progressUpload: function(evt) {
    // See above
  },
  success: function(data) {
    getGroupAndItemsJSON = data;
  } 
});

//get groupDetails JSON using AJAX 
$.getJSON("data/parsedGroupDetails.json", function(result) {
  getGroupDetailsJSON = result;
}).fail(function() {
  console.log("failed to load parsedGroupDetails.json");
}).done(function() {
  parsedGroupDetailsDone = true;
});  
        
//begin .getJSON for file parsedOrangeBarGraph.json
//  data/groupFilterItems.json
$.getJSON("data/parsedOrangeBarGraph.json", function(result) {
  getlistGroupAndItemsArray = result;
}).fail(function() {
  console.log("failed to load parsedOrangeBarGraph.json");
}).done(function() {
  parsedOrangeBarGraphDone = true;
});