如何加载谷歌图表与冻结库

How to load google charts with frozen library?

本文关键字:冻结 谷歌 何加载 加载      更新时间:2023-09-26

通常情况下,google charts库是按如下方式加载的,运行良好:

google.load('visualization', '1', {packages: ['corechart']});
var data = new google.visualization.arrayToDataTable(v);
var chart = new google.visualization.LineChart(elm[0]);
chart.draw(data, options);

现在我想切换到核心图的冻结版本。文档说明如下:

google.charts.load('41', {packages: ['corechart']});

@see https://developers.google.com/chart/interactive/docs/library_loading_enhancements

问题:使用这个,我在javascript中得到google.visualization未定义的错误。

那么,我要如何加载冻结版本呢?

问题不在于加载,而在于您访问google.visualization的时刻。

文档说明您应该为创建图表的google.charts.setOnLoadCallback提供回调,但您没有。

当您正常加载库时,似乎脚本将同步加载(通过document.write),但是当您加载冻结版本时,脚本将异步加载(通过appendChild),这就是为什么您的尝试失败(当您尝试访问google.visualization时脚本尚未完全加载)

是否更改了脚本标签的来源?

<script type="text/javascript" 
    src="https://www.google.com/jsapi"></script>

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