Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.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
Javascript 高图表/高库存的大数据量(异步加载)_Javascript_Python_Highcharts_Lazy Loading_Bigdata - Fatal编程技术网

Javascript 高图表/高库存的大数据量(异步加载)

Javascript 高图表/高库存的大数据量(异步加载),javascript,python,highcharts,lazy-loading,bigdata,Javascript,Python,Highcharts,Lazy Loading,Bigdata,因为我的数据量每天都在增加(现在一周内超过200000行),所以图表的加载速度非常慢。我想异步加载方法是正确的方法()。 我试图实现它,但它不起作用。到目前为止,我可以通过URL参数(例如)使用Python提供数据,但在示例代码中有几点我不理解: 如果在导航器中选择了一个包含所有数据的时段,则所有数据都将被删除 由我的服务器提供并由图表加载。所以它和我一样 我现在所做的没有延迟加载。那有什么区别呢 为什么第二个getJSON()方法中没有任何URL参数 上面提到的示例代码?它是以下URL,该U

因为我的数据量每天都在增加(现在一周内超过200000行),所以图表的加载速度非常慢。我想异步加载方法是正确的方法()。 我试图实现它,但它不起作用。到目前为止,我可以通过URL参数(例如)使用Python提供数据,但在示例代码中有几点我不理解:

  • 如果在导航器中选择了一个包含所有数据的时段,则所有数据都将被删除 由我的服务器提供并由图表加载。所以它和我一样 我现在所做的没有延迟加载。那有什么区别呢
  • 为什么第二个getJSON()方法中没有任何URL参数 上面提到的示例代码?它是以下URL,该URL为空。我该怎么办 你需要它吗?我不明白: ?
哪种加载数据的方法更好 这一个:
chart.series[0].setData(数据)
或者我目前使用的以下代码:

var ohlc = [],
volume = [],
dataLength = data.length,
i = 0;
for (i; i < dataLength; i += 1) {
ohlc.push([
data[i]['0'], // date
data[i]['1_x'], // open
data[i]['2_x'], // high
data[i]['3'], // low
data[i]['4'] // close  ]);
var-ohlc=[],
卷=[],
dataLength=data.length,
i=0;
对于(i;i
延迟加载演示背后的想法是,您只获取必要的点数,因此,如果您拥有包含170万个点数的数据,您永远不会将如此多的点数加载到图表中

  • 基于Highcharts演示。您不需要加载太多的点,而是请求已经分组的点,您每天有170万点,您将导航器设置为“全部”(时间范围1998-2011),您不需要每天的数据,因此响应将包括每月的点。好处是:获取的数据量更小(12*14=168,而不是170万),避免在客户端大量处理数据(处理、分组等)->降低客户端的内存和cpu使用率,加快图表加载

  • 数据请求采用JSONP格式。有关其优点的更多信息。因此,实际上,url有3个参数-强制
    回调=?
    和可选
    开始=?&stop=?
    -指示时间范围和密度。第一个请求没有开始/停止参数,因为服务器有一些默认值已设置。移动导航器后,将请求更详细的点并将其加载到图表中。这是延迟加载的缺点-移动导航器后,您将请求一组新数据->频繁的数据请求和由于网络故障导致的中断


最后一个问题的答案取决于数据的格式是否正确。如果正确,可以避免在客户端循环数据并直接加载到图表中。如果格式不正确,则必须对数据进行预处理,以便图表能够正确显示数据。理想情况下,您需要数据在您请求后以正确的格式进行-因此,如果可以的话,您应该在服务器端执行此操作。

延迟加载演示背后的想法是,您只获取所需的点数,因此如果您拥有包含170万个点数的数据,您永远不会向图表加载如此多的点数

  • 基于Highcharts演示。您不需要加载太多的点,而是请求已经分组的点,您每天有170万点,您将导航器设置为“全部”(时间范围1998-2011),您不需要每天的数据,因此响应将包括每月的点。好处是:获取的数据量更小(12*14=168,而不是170万),避免在客户端大量处理数据(处理、分组等)->降低客户端的内存和cpu使用率,加快图表加载

  • 数据请求采用JSONP格式。有关其优点的更多信息。因此,实际上,url有3个参数-强制
    回调=?
    和可选
    开始=?&stop=?
    -指示时间范围和密度。第一个请求没有开始/停止参数,因为服务器有一些默认值已设置。移动导航器后,将请求更详细的点并将其加载到图表中。这是延迟加载的缺点-移动导航器后,您将请求一组新数据->频繁的数据请求和由于网络故障导致的中断


最后一个问题的答案取决于数据的格式是否正确。如果正确,可以避免在客户端循环数据并直接加载到图表中。如果格式不正确,则必须对数据进行预处理,以便图表能够正确显示数据。理想情况下,您需要数据在您请求后,以正确的格式发送数据-因此,如果可以,您应该在服务器端执行此操作。

谢谢。如果由于网络故障导致频繁的数据请求和中断,是否有更好的解决方案?您知道Poloniex或TradingView是如何处理此问题的吗?我不知道这些网站如何处理此问题,但我也不认为我可以除非网站活动显著增长,否则这应该是个问题。我夸张地提到它只是为了指出一些缺点。谢谢。如果由于网络故障导致频繁的数据请求和中断,有更好的解决方案吗?你知道Poloniex或TradingView是如何处理这个问题的吗?我不知道这些网站是如何处理的但我也不认为这应该是问题,除非网站活动显著增长。我夸张地提到它只是为了指出一些缺点。