我有以下脚本的工作,但有一个恼人的问题:谷歌图表加载消息
<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