使用JqPlot处理“无数据”是否有最佳方法?
假设我正在使用ajax调用消耗json数据,并且最终没有数据可用,例如:
[['North'][0],['South'][0],['East'][0],['West'][0]]
答案 0 :(得分:14)
我总是有条件检查我的AJAX
函数,该函数检查没有结果。然后,如果没有结果发生,我设置一个图表,使其看起来是空的。因此var data = [[null]]
应该这样做,其中data
是jQuery.jqplot('chart', data, {})
的参数。 data
的值可能取决于图表的类型,因此我测试了它的线条,条形图和饼图,它工作正常。
您也可以选择隐藏图例以及图表的其他部分。对我来说,只设置data
和图例就足够了。
答案 1 :(得分:2)
var data = [null];
将触发控制台中的错误并进一步停止JS脚本执行。
更好的解决方案是使用以下内容。
var data = [''];
jQuery.jqplot('chart', data, {});
这将打印任何后续图形和/或继续执行JS脚本,在FF / Chrome / IE控制台中没有错误。 :-)
答案 2 :(得分:2)
在我的情况下,它与Rahi的答案相反(也许是null左边的缺失双括号是问题),这意味着我同意Boro;
这有效:var data = [[null]];
并且:var data = [''];
生成错误,无论我有多个图表还是只有一个没有数据,都会产生错误。
我正在运行jqPlot 1.0.9
我得到的错误是:Uncaught Error: No data specified
来自jqPlot脚本中的条件
if (0 == this.noDataIndicator.show)
throw new Error("No data specified");