Javascript AmCharts 4数据源:强制图表等待加载所有外部数据
我正在使用AmCharts 4创建包含外部数据的散点图,使用以下代码指向外部URL:Javascript AmCharts 4数据源:强制图表等待加载所有外部数据,javascript,amcharts,Javascript,Amcharts,我正在使用AmCharts 4创建包含外部数据的散点图,使用以下代码指向外部URL: dataURL = 'http://somesite.com/page?params=1234'; ScatterChart.dataSource.disableCache = true; ScatterChart.dataSource.url = dataURL; 图表加载;然而,每次我加载图表时,它都会给我一组不同的数据,而且它总是缺少我期望的重要数据块。当我转到dataURL时,外部数据将在大约20秒内
dataURL = 'http://somesite.com/page?params=1234';
ScatterChart.dataSource.disableCache = true;
ScatterChart.dataSource.url = dataURL;
图表加载;然而,每次我加载图表时,它都会给我一组不同的数据,而且它总是缺少我期望的重要数据块。当我转到dataURL
时,外部数据将在大约20秒内下载到其URL中。我认为这不是等待数据源页面在绘制图形之前完成信息下载
有没有办法强制AmCharts在绘制图表之前等待数据源完成加载?
以下是dataURL
的网络视图截图:
暂时退出该项目,但最近又重新开始,并确定图表仅显示某些数据点的原因是数据的排序顺序,而不是数据加载时的任何超时 在本例中,我将描述在构建带有日期X轴和值Y轴的XY散点图时发生的情况 表示顺序对于线系列来说很重要,因为线的连接方式很混乱,但并不是说无序数据不会显示。当我进行实验时,我发现情况并非如此 当我按日期X轴升序排序时,所有数据都显示出来。
data=data.sort((a,b)=>a['DateX']
如果我没有按日期对数据进行排序,它只会显示我的部分信息。
当我按日期列降序排序时,图表上只显示一个数据点。
data=data.sort((a,b)=>a['DateX']>b['DateX']?-1:a['DateX']>b['DateX']?1:0)
因此,最后,如果您遇到这种情况,请确保在将数据发送到图表之前对其进行排序。仅供参考,这引起了我们的注意,我们会在有机会查看时通知您。amCharts 4内置的数据加载没有任何超时。它也不会启动仅部分加载数据的图表构建。我怀疑实际的数据源可能发生了什么事情,比如可能有一些服务器端执行限制被击中,导致只生成部分数据。我建议您尝试直接访问数据URL,并检查它是否完全加载,在输出和响应标题中都没有错误。@martynasma内容在上面的屏幕截图上“等待(TTFB)”1.26秒后出现在页面上;然而,在21.39秒的“内容下载”期间,它会持续加载到页面中。从视觉上看,你可以看到滚动条变小了,如果你滚动到底部,它将继续加载下面的内容。起初,我尝试自己通过Ajax加载数据并将其发送到图表的数据对象,但最终由于内存使用率极高(数据只有13Mb)而导致浏览器崩溃。最后,我将图表切换回AmCharts3数据加载程序,它运行得很快。请告诉我是否有任何可能有用的诊断信息。我也管理dataURL。而且,响应或实际输出中没有错误。