程序如下: function getResult() {
//进度条开始
$("#loading div").animate({width:"16px"}).text("16%");
setTimeout(function(){$("#loading div").animate({width:"34px"}).text("34%")},500); var url = "select/city_Ajax";
req = new XMLHttpRequest();
req.open("GET",url, false);
//进度条进行中
setTimeout(function(){$("#loading div").animate({width:"67px"}).text("67%")},1000);
} function complete(){
//进度条进行中
setTimeout(function(){$("#loading div").animate({width:"82px"}).text("82%")},1500) if (req.readyState == 4) {
if (req.status == 200) {
//其他代码
//进度条进行中
setTimeout(function(){$("#loading div").animate({width:"100px"}).text("100%")},2000)
}
} //进度条结束并隐藏
setTimeout(function(){$("#loading").hide(500)},500);
}
html如下<div id="loading"><div></div></div>
<li><a href="#" class="home" onclick="getResult('state_flag');"><small>查询数据库</small></a></li>
我是想在调用servlet中,得到结果中都加入setTimeout(function(){$("#loading div").animate({width:"#px"}).text("#%")},2000),让loading这个div改变大小来模拟那个进度条。但是每次执行都是先执行完servlet后,再启动这个进度条的显示,进行中和完成的动作。我猜想是不是因为ajax是异步执行的,所以必须等这个servlet执行完,才能开始处理js写的那个进度条?
//进度条开始
$("#loading div").animate({width:"16px"}).text("16%");
setTimeout(function(){$("#loading div").animate({width:"34px"}).text("34%")},500); var url = "select/city_Ajax";
req = new XMLHttpRequest();
req.open("GET",url, false);
//进度条进行中
setTimeout(function(){$("#loading div").animate({width:"67px"}).text("67%")},1000);
} function complete(){
//进度条进行中
setTimeout(function(){$("#loading div").animate({width:"82px"}).text("82%")},1500) if (req.readyState == 4) {
if (req.status == 200) {
//其他代码
//进度条进行中
setTimeout(function(){$("#loading div").animate({width:"100px"}).text("100%")},2000)
}
} //进度条结束并隐藏
setTimeout(function(){$("#loading").hide(500)},500);
}
html如下<div id="loading"><div></div></div>
<li><a href="#" class="home" onclick="getResult('state_flag');"><small>查询数据库</small></a></li>
我是想在调用servlet中,得到结果中都加入setTimeout(function(){$("#loading div").animate({width:"#px"}).text("#%")},2000),让loading这个div改变大小来模拟那个进度条。但是每次执行都是先执行完servlet后,再启动这个进度条的显示,进行中和完成的动作。我猜想是不是因为ajax是异步执行的,所以必须等这个servlet执行完,才能开始处理js写的那个进度条?
2、可以返回STATE值看进行到哪一部了