我尝试使用以下代码在调整窗口大小时调整 Google 图表的大小。
... <div id="demo-chart"></div>...
我名为test.json的 JSON 文件将包含此代码
[["Date","Visitors"],["May 16,2013",67],["May 17,2013",3],["May
18,2013",0],["May 19,2013",0],["May 20,2013",0],["May
21,2013",1],["May 22,2013",0]]
我的 Javascript 代码将是,
<script src="http://www.google.com/jsapi"></script>
<script>
function loadData(fileName) {
// $.getJSON( fileName)
return $.ajax({
url: fileName,
dataType: "json",
async: false,
}).responseText;
}
drawVisitorsChart = function()
{
var myFile = "test.json";
var jsonData= loadData(myFile);
var obj = jQuery.parseJSON(jsonData);
var data = new google.visualization.arrayToDataTable(obj);
var div = $('#demo-chart'),
divWidth = div.width();
new google.visualization.LineChart(div.get(0)).draw(data, {
title: 'Monthly unique visitors count',
width: divWidth,
height:180,
legend: 'right',
yAxis: {title: '(thousands)'},
backgroundColor: '#494C50',
legendTextStyle: { color: 'white' },
titleTextStyle: { color: 'white' },
hAxis: {
textStyle: { color: 'white' }
},
vAxis: {
textStyle: { color: 'white' },
baselineColor: '#666666'
},
chartArea: {
top: 35,
left: 30,
width: divWidth-40
},
legend: 'bottom'
});
};
// Load the Visualization API and the piechart package.
google.load('visualization', '1', {
'packages': ['corechart']
});
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawVisitorsChart);
// Watch for block resizing
window.onresize = drawVisitorsChart;
</script>
这适用于使用 Google AJAX 数据调整窗口大小。但是在这里每次调整窗口大小时调用 AJAX 数据可能会使浏览器冻结。
调整窗口大小时,有没有更好的方法来调整带有 AJAX 数据的 Google 图表的大小?