谷歌可视化数据表间歇性问题

Google visualization datatable intermittent problems

本文关键字:问题 可视化 数据表 谷歌      更新时间:2023-09-26

我正在使用谷歌分析和可视化库为我们的分析数字创建一个仪表板。它运行良好,但开始间歇性地给我 你用错误的数据类型调用了 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 调用中查看结果.dataTable 时,它包含我期望的数据。问题似乎在于将这些结果转换为此行中的数据表:

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

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

知道什么会导致数据表(结果.数据表)有时无法正常工作吗?

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

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

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