一个重复运行的$.ajax(),如何发送完一个,暂停几秒呀

syl5005 2014-08-23 06:20:46
用了几种方法都不起作用。麻烦高手给指点一下。
代码如下:
function newRequest(){
if(i>=d.length){ //infosǴƵ
return;
}
var vmName = d[i].name;
$.ajax({
url:"send_email.php?silent=1&name=" + d[i].name + "&mail=" + d[i].mail,
contentType:'application/json;charset=UTF-8',
type:"get",
dataType:"json",
complete:function(a,b){
if(a.responseText=="ok"){
ok++;
$("div").html("sended success:"+ok);
// $("div").html($("div").html()+d[i].mail+"<br/>");
}else{
$("p").html($("p").html()+"<br/>"+d[i].mail);
}
i++;

// $('p').html("Waiting for 5");
// setTimeout(function (){$("p").html(""); }, i*5000);

/*
var m;
for(m=1;m<=100000000;m++){
var n;
for(n=1;n<=10;n++);
}
*/

newRequest();

}
});
}
...全文
257 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
syl5005 2014-08-23
  • 打赏
  • 举报
回复
改好啦,原来是自己写的代码多了一个(),谢谢
varlj 2014-08-23
  • 打赏
  • 举报
回复
大致这样

var i=0;
function newRequest(){
	if(i==5)
		return;
		
	//省略.....
	$.ajax({
		//省略....
		complete:function(a,b){
			i++;
			setTimeout(newRequest, 5000);
		}
		//省略
	}
}
syl5005 2014-08-23
  • 打赏
  • 举报
回复
for(i=1;i<5;i++){ setTimeout(function ()}, 1000); } 你的意思是这样?这样也不会暂停1秒,再继续循环呀, 我对javascript还真不是很熟悉,麻烦给点建议
syl5005 2014-08-23
  • 打赏
  • 举报
回复
这是在取json数据,循环发送用的,找了好多方法,只有这个递归是可以正常运行的, 你的意思是改变一下结构? 请明示
KK3K2005 2014-08-23
  • 打赏
  • 举报
回复
吧问题改成 发送完 ajax 后 间隔 x秒后 在发送 ajax 你吧这个问题解了 你的问题也ok了
syl5005 2014-08-23
  • 打赏
  • 举报
回复
不行的,我试过啦
LoveNet_ 2014-08-23
  • 打赏
  • 举报
回复
window.setTimeout("回调函数",1000);

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧