【问题标题】:Google visualization datatable intermittent problems谷歌可视化数据表间歇性问题
【发布时间】:2016-04-25 19:16:54
【问题描述】:

我正在使用谷歌分析和可视化库为我们的分析数据创建仪表板。它运行良好,但开始间歇性地给我 您使用错误类型的数据调用 draw() 方法,而不是 DataTable 或 DataView 错误。我对此进行了搜索,发现几个线程说其他人无法重现它或者他们没有正确加载库。我将加载更改为下面(有一堆 GA 授权,我没有在这里显示。但这部分似乎都在工作。)

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

...

google.charts.load("current", {packages:["table"]});
google.charts.setOnLoadCallback(getStarted);

...

gapi.client.analytics.data.ga.get(eventsObj).execute(function(results){
    var viz = new google.visualization.Table($('#my-table-id'));
    var dataTable = new google.visualization.DataTable(results.dataTable);
    viz.draw(dataTable,{showRowNumber:true,allowHtml:true});
});

当我查看来自 gapi 调用的 results.dataTable 时,它​​包含我期望的数据。问题似乎在于将这些结果转换为这一行中的 DataTable:

    var dataTable = new google.visualization.DataTable(results.dataTable);

当我收到消息时,我在控制台中没有收到任何 javascript 错误。但是,如果我检查该调用返回的数据表,则有一个名为 Ec 的数组,其长度为零。当图表成功时,会有一个名为 ec 的数组,其长度为 12(向 Google 分析的请求返回的结果数)。

知道什么会导致 DataTable(results.dataTable) 有时无法正常工作吗?

【问题讨论】:

  • Data Table Class constructor 下列出的示例显示了用于初始化表的数据格式 -- 可以分享results.dataTable 的示例吗?
  • 我可以使用调试工具看到它,数据来自谷歌分析的嵌入 api。它似乎遵循结构 -- 带有 cols 和 rows 数组的对象,其中包含具有适当值的对象。
  • 问题似乎是第二次通过新的 google.visualization.DataTable() 实际上并没有创建 DataTable 的实例。不知道为什么。

标签: javascript datatable google-visualization


【解决方案1】:

我搜索了各种角度,尝试了很多不同的代码,但最终我发现我应该像这样加载库......

google.load("visualization", "1", {packages:["table","corechart"]});
google.setOnLoadCallback(getStarted);

问题已经消失了。不知道这是否正确,但它现在正在工作。

【讨论】:

    猜你喜欢
    • 2015-05-25
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    相关资源
    最近更新 更多