我见过很多人问过在一个页面上有多个Google Charts,答案总是“你的html / js是错误的”,或者“只是将它们全部添加到setOnLoadCallback中调用的一个函数中”。
我的问题有点不同。如果我想要按钮,客户端,点击时生成Google图表,该怎么办?我是否需要每隔时间调用“google.load(....)”,然后再调用setOnLoadCallback,或者是否有某种方法将其加载到ONCE,然后从那一点开始直接使用已加载的对象?
我唯一能想到的是存储一些在第一个google.setOnLoadCallback上更新的标志,如果设置了标志,请不要再次加载它,但如果有人快速点击几个按钮,他们都会发出了“加载”函数调用。
基本上我想要一个我可以调用的泛型函数(我会自己创建)但是我不希望每次都调用google.load这个函数,它只是感觉非常低效。
我如何有效地解决这个问题?
答案 0 :(得分:1)
google.load
。您不必将所有图表放入一个函数中,您可以创建多个函数并随时调用它们,如下所示:
google.load('visualization', '1.1', {
packages: ['corechart', 'controls'],
language: 'en'
});
function drawFirstVisualizations() {
chart1 = new google.visualization.ChartWrapper({
'chartType': 'LineChart',
});
chart2 = new google.visualization.ChartWrapper({
'chartType': 'LineChart',
});
chart1.draw();
chart2.draw();
}
function drawSecondVisualizations() {
chart3 = new google.visualization.ChartWrapper({
'chartType': 'LineChart',
});
chart4 = new google.visualization.ChartWrapper({
'chartType': 'LineChart',
});
chart3.draw();
chart4.draw();
}
google.setOnLoadCallback(drawFirstVisualizations);
function functionBeingCalledLater() {
google.setOnLoadCallback(drawSecondVisualizations);
}