Javascript 使用highcharts冻结浏览器创建大型热图

Javascript 使用highcharts冻结浏览器创建大型热图,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我正在使用highcharts创建一个大型热图。它工作正常,但当有大量记录要生成热图时。在这种情况下,它会冻结broswer,broser会显示一个警报以等待或结束页面。我在Stackoverflow上看到了一些其他答案,建议将计算算法更改为可以迭代调用的算法,然后使用timeout(),但我无法在我的场景中使用它,即如何使highchart渲染迭代 如何防止它冻结浏览器?Highcharts有很多循环来渲染数据,因此我发现的唯一可能性是减少加载的数据量。加载10MB以上(通常已经达到3-4MB

我正在使用highcharts创建一个大型热图。它工作正常,但当有大量记录要生成热图时。在这种情况下,它会冻结broswer,broser会显示一个警报以等待或结束页面。我在Stackoverflow上看到了一些其他答案,建议将计算算法更改为可以迭代调用的算法,然后使用timeout(),但我无法在我的场景中使用它,即如何使highchart渲染迭代


如何防止它冻结浏览器?

Highcharts有很多循环来渲染数据,因此我发现的唯一可能性是减少加载的数据量。加载10MB以上(通常已经达到3-4MB)的数据会导致几乎所有浏览器都冻结

我在处理大型数据集时也遇到了类似的问题(10个系列中有15分钟的数据点)。在查看整个数据集时,我所做的是服务器端数据聚合(平均4小时)。在zoom上,我通过ajax获得了15分钟的实际数据点,但仅限于afterSetExtremes事件的可见区域:

events: {
  afterSetExtremes: 'function(event) { 
      if(typeof event.userMin == "undefined") 
          { var a={"min": null, "max": null}; } 
      else 
          { var a={"min": event.min, "max": event.max}; } 
      $.ajax({url:"/user/analyze/intval", method: "POST", 
          data: a, dataType: "json"}).success(function(json) 
          { //update series here }'
}
我使用事件类型来确定是否使用了缩放重置(再次获取初始聚合数据)


我认为类似的事情也能解决你的问题。问问你自己,有这么多数据有帮助吗?通常,即使原始数据被大量聚合(因子4-6),可见差异也接近于零。

您能提供一个演示吗?为什么不能在您的场景中使用它?@Brewal:我正在尝试创建一个demo@JonasGrumann:因为我不知道Highchart是如何创建热图的。所以我无法将其转换为迭代解决方案。@Brewal:您可以看到highcharts热图演示:。在我的例子中,我只是有更多的值。在这种情况下,它会冻结浏览器。