我做一个要随着时间进行,实时显示进度信息的功能,用setInterval()+ajax实现,ajax用来发送查询数据库服务器的请求,并把返回回来的查询结果进行处理,setInterval()用来决定每隔15秒发送一个这样的请求,样子如: var inter= window.setInterval("getResponse();",1500); function getResponse()
{
var url = 'eventid=1'
var sUrl = "Response2.aspx?";
var myAjax = new Ajax.Request(sUrl, {method: 'get', asynchronous:true,parameters: url,onComplete:getRefreshComplete});
} function getRefreshComplete(originalRequest)
{
eval(originalRequest.responseText);
document.getElementById("ajaxRespone").innerHTML=originalRequest.responseText;
} Response2.aspx是查询页面,启动过程是点击请求页面的一个button,后台去调用一个web服务,前台就开始执行这个setInterval()了(后台的web服务执行需要两三分钟,这个过程中,会把产生的信息写入数据库,ajax就负责抓回这些信息返还给客户端展示),但是奇怪的是,setInterval()不是每隔15秒发送一次请求,而是等后台那个web服务执行结束后,才把这3分钟积攒的发送请求一口气都发过去,结果返回来的信息都是web服务执行完毕的信息。 难道是setInterval()失效了吗?请高手指教啊。
{
var url = 'eventid=1'
var sUrl = "Response2.aspx?";
var myAjax = new Ajax.Request(sUrl, {method: 'get', asynchronous:true,parameters: url,onComplete:getRefreshComplete});
} function getRefreshComplete(originalRequest)
{
eval(originalRequest.responseText);
document.getElementById("ajaxRespone").innerHTML=originalRequest.responseText;
} Response2.aspx是查询页面,启动过程是点击请求页面的一个button,后台去调用一个web服务,前台就开始执行这个setInterval()了(后台的web服务执行需要两三分钟,这个过程中,会把产生的信息写入数据库,ajax就负责抓回这些信息返还给客户端展示),但是奇怪的是,setInterval()不是每隔15秒发送一次请求,而是等后台那个web服务执行结束后,才把这3分钟积攒的发送请求一口气都发过去,结果返回来的信息都是web服务执行完毕的信息。 难道是setInterval()失效了吗?请高手指教啊。
另外,你说15秒执行一次,但是那个1500却是1.5秒啊...