ウィンドウのサイズが変更されたときに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 チャートのサイズを変更するより良い方法はありますか?