function DaoJiShi(pid,TaskStatue)
  { 
//这之间还有很多JS的逻辑处理程序 
$.ajax({
type: "POST", 
dataType: "html", 
url: '/inc/CeanLib.asp', 
data: "action=UpTask&pid="+pid+"&t="+TaskStatue+"" ,
success: function (json) {
//alert(json);

}
});
 setTimeout("DaoJiShi("+pid+","+TaskStatue+")",1000);
}这是一个利用setTimeout每隔一秒调用ASP文件的程序,因为CeanLib.asp中处理的程序估计在一秒内无法完全的从头到尾执行完,所以导致CeanLib.asp中的执行结果并不是我想要的。
请教大家如何让ASP程序完全的执行完.之前我想在function外加个array
如下:
var ExecuteCount_array=new Array();
function DaoJiShi(pid,TaskStatue)
{
if(ExecuteCount_array[pid]==null)//
{
ExecuteCount_array[pid]="0";
}
if(ExecuteCount_array[pid]=="0")
  {$.ajax({
type: "POST", 
dataType: "html", 
url: '/inc/CeanLib.asp', 
data: "action=UpTask&pid="+pid+"&t="+TaskStatue+"" ,
success: function (json) {
//alert(json);

}
});
ExecuteCount_array[pid]="1";
}
 setTimeout("DaoJiShi("+pid+","+TaskStatue+")",1000);
}但这好像没效果

解决方案 »

  1.   

    //setTimeout()是延时执行,代码只执行一次。
    //如果要多次执行,用setInterval()
    setInterval("DaoJiShi("+pid+","+TaskStatue+")",1000);
      

  2.   


    我这代码是用于倒计时,现在已经实现了倒计时,它会不断的调用DaoJiShi,并不会如你说的只执行一次。如果到了0分0秒时就用ajax调用ASP文件。
      

  3.   

    将setTimeout放在success函数中就行了。
    这个例子是不能用setInterval,会出现意想不到的结果