我有以下腳本的工作,但有一個惱人的問題:谷歌圖表加載消息
<html>
<head>
<script language="javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChartAjax);
function drawChartAjax() {
$.ajax({
url: 'chart_json.aspx',
type: 'POST',
dataType: 'json',
success: function(data) {
drawChart(data);
}
});
}
function drawChart(json) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'User');
data.addColumn('number', 'v');
data.addRows(json.length);
for(var j in json) {
for(var k in json[j]) {
data.setValue(parseInt(j), 0, k);
data.setValue(parseInt(j), 1, json[j][k].v);
}
}
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, {width: 500, height: 300, is3D: true, title: 'Titles goes here'});
}
</script>
</head>
<body>
<div id="header">header goes ehre</div>
<div id="chart_div"></div>
<div id="footer">footer goes here</div>
</body>
</html>
的問題是,有時候圖表可能需要很長的時間來出現的各種原因。發生這種情況時,會加載標題,然後是圖表,然後是頁腳。這看起來很糟糕IMO。 IMO,整個頁面應加載,包括頁腳和一個平的「裝載..」應當被顯示的消息,直到圖表即可顯示本身,或GIF動畫直到圖表已準備就緒。
我怎樣才能得到整個頁面加載和顯示加載信息,直到圖表,而不必頁腳缺少準備,那麼頁腳突然一旦圖表已完成加載出現?
我不會爭辯是否是2003年,但這有點過於老派。即使腳本位於文件末尾,也不能假定DOM已準備就緒。 bozdoz已經給出了正確的答案。使用$(函數)可以在DOM準備就緒後運行代碼。 – naugtur 2010-11-09 11:42:22
感謝您的認可naugtur! :) – bozdoz 2011-07-25 03:29:59