用js怎么判断连续三秒得不到数据 用js怎么判断连续三秒得不到数据 fuction CountdownDataBind(id,type,data){ $.p("a.aspx",{id:id,data:data},fuction(xml){ var result=xml; if(result!="") { $("#aa").html("dfsdfsf"); } else { $("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出 } })} 整个函数每秒都在执行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试这样:fuction CountdownDataBind(id,type,data){ $.p("a.aspx",{id:id,data:data},callback)}callback = fuction(xml){ var result=xml; if(result!="") { $("#aa").html("dfsdfsf"); } else { $("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出 } setTimeout(callback,1000); } 额,不是,应该是发送请求的时候setTimeout,每秒发送一次请求,外面一个全局变量存储发送次数,累积大于3就不发送了 setInterval(CountdownDataBind(id,type,data),3000): 那不行吧,有时延迟只有1或2秒钟,在这种情况不需要 $("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出 设置一个标志位fThree,在回调函数中修改,当得到数据时将fThree置0,取不到数据时fThree加1并判断fThree是不是为3,是则说明连续三秒没有取到数据。var fThree=0; fuction CountdownDataBind(id,type,data){ $.p("a.aspx",{id:id,data:data},fuction(xml){ var result=xml; if(result!="") { fThree=0; $("#aa").html("dfsdfsf"); } else { fThree++; if(fThree==3) $("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出 } })} 你这个不应该用每秒执行的方式,因为你不知道流程什么时候完成,而且下一次执行时上一个流程可能还没完成,再一次的请求可能会加剧网络和服务器的负担用递归比较好,规定次数而不是时间 fuction CountdownDataBind(id,type,data,num)//num为请求的最大次数{ if(num==0) { $("#aa").html("由于网络不稳定,暂时得不到数据")//num次请求都没有结果就结束递归,输出失败 return; } num--; $.p("a.aspx",{id:id,data:data},fuction(xml){ var result=xml; if(result!="") { $("#aa").html("dfsdfsf"); return;//一旦成功即结束递归,避免浪费时间及资源 } else { CountdownDataBind(id,type,data,num-1); } })} fuction CountdownDataBind(id,type,data){ if(!arguments.callee.n){arguments.callee.n = 0} $.p("a.aspx",{id:id,data:data},fuction(xml){ arguments.callee.n++ var result=xml; if(result!="") { $("#aa").html("dfsdfsf"); } else { if(arguments.callee.n%3 === 0){ $("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出 } } })} $.ajax还有个timeout的涵数啊,你设置为3000,$.ajax({success:function(){},timeout:function(){alert('3秒时间到');}}); coolite(extnet)在gridpanel里面的cloumn中,很难选择下拉框.。。。。 列表验证问题 **求prototype用法** <javascript的函数> 我写了一个鼠标移动到热点上边显示这块的一个标题的js 可是有点毛病 移动出去以后就不显示了 时间格式转换 问个简单问题~! 怎么样在一个超连接前加个密码检验! js if嵌套优化问题 用高德地理编码,在web端请求,然后就返回这个 请问自定义的构造函数的实例化对象也继承了Object类了吗? 初学JavaScript,想实现代码运行的同时在网页中同时输出中间过程的值??如何能做到?
{
$.p("a.aspx",{id:id,data:data},callback)
}callback = fuction(xml){
var result=xml;
if(result!="")
{
$("#aa").html("dfsdfsf");
}
else
{ $("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出
}
setTimeout(callback,1000);
}
fuction CountdownDataBind(id,type,data)
{
$.p("a.aspx",{id:id,data:data},fuction(xml){
var result=xml;
if(result!="")
{
fThree=0;
$("#aa").html("dfsdfsf");
}
else
{
fThree++;
if(fThree==3)
$("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出
} })
}
用递归比较好,规定次数而不是时间 fuction CountdownDataBind(id,type,data,num)//num为请求的最大次数
{
if(num==0)
{
$("#aa").html("由于网络不稳定,暂时得不到数据")//num次请求都没有结果就结束递归,输出失败
return;
}
num--;
$.p("a.aspx",{id:id,data:data},fuction(xml){
var result=xml;
if(result!="")
{
$("#aa").html("dfsdfsf");
return;//一旦成功即结束递归,避免浪费时间及资源
}
else
{
CountdownDataBind(id,type,data,num-1);
} })
}
{
if(!arguments.callee.n){arguments.callee.n = 0}
$.p("a.aspx",{id:id,data:data},fuction(xml){
arguments.callee.n++
var result=xml;
if(result!="")
{
$("#aa").html("dfsdfsf");
}
else
{
if(arguments.callee.n%3 === 0){
$("#aa").html("由于网络不稳定,暂时得不到数据")//3秒到不到数据后输出
}
} })
}
$.ajax({
success:function(){},
timeout:function(){alert('3秒时间到');}
});