我用js写了个轮询,再怎么写可以让它在条件下停止啊,高手来帮帮啊

<scripttype="text/javascript">$(document).ready(function(){setInterval(checkIsExist,1... <script type="text/javascript">

$(document).ready(function(){
setInterval(checkIsExist,10000);//每10秒执行一次checkIsExist方法
});

function checkIsExist(){
$.ajax({
type: "POST",
url: "/SecondServlet",
data: "date="+new Date(),
success: function(rtmsg){
if(rtmsg == 'exist'){
$("#download").html("<button onclick=\"window.open('/ArticleServlet');\">下载</button>");
}
}
});
}

function go(){
$.ajax({
type: "POST",
url: "/FristServlet",
data: "date="+new Date(),
success: function(rtmsg){
if(rtmsg == 'success'){
alert("生成成功!");
}else if(rtmsg == 'fail'){
alert("生成失败!");
}
}
});
}
</script>
FristServlet 是生成一zip包
SecondServlet 是判断这个包是否存在,
10秒轮询一次,如果存在就用 ArticleServlet下载,
判断存在了,可还在轮询,怎么才能停啊
展开
 我来答
shenchaoliang
推荐于2018-02-28 · TA获得超过1163个赞
知道大有可为答主
回答量:810
采纳率:0%
帮助的人:1501万
展开全部
用clearInterval,如下

$(document).ready(function(){
c = setInterval(checkIsExist,10000);//每10秒执行一次checkIsExist方法
});

function checkIsExist(){
$.ajax({
type: "POST",
url: "/SecondServlet",
data: "date="+new Date(),
success: function(rtmsg){
if(rtmsg == 'exist'){
$("#download").html("<button onclick=\"window.open('/ArticleServlet');\">下载</button>");
window.clearInterval(c);
}
}
});
}
百度网友7e86e9f7b4
2011-04-22 · TA获得超过796个赞
知道小有建树答主
回答量:279
采纳率:0%
帮助的人:193万
展开全部
show=setInterval(checkIsExist,10000);//每10秒执行一次checkIsExist方法
clearInterval(show);//取消函数调用
JS setInterval和clearInterval的用法2011-02-25 15:22setInterval() 可按照指定的时间周期(以毫秒计)来调用函数或计算表达式。

格式: setInterval(code,millisec)

参数 code: 要调用的函数或要执行的代码串。必须

参数 millisec: 时间间隔,表示每隔多少时间执行一次code函数或表达式....以毫秒计。必须

返回值:

一个可以传递给 Window.clearInterval() 从而取消对 code 的周期性执行的值。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

clearInterval() 方法可取消由 setInterval() 设置的 timeout。

clearInterval(id_of_setinterval)

参数:id_of_setinterval :由 setInterval() 返回的 ID 值。

clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
此用户被关机
2011-04-22 · TA获得超过317个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:235万
展开全部
你应该用一个标志变量来控制那个 setInterval(checkIsExist,10000);//每10秒执行一次checkIsExist方法,
比如你定义一个变量var isLunxun =1;
然后把轮讯放进一个判断里
$(document).ready(function(){
if(isLunxun){
setInterval(checkIsExist,10000);//每10秒执行一次checkIsExist方法
}
});
然后存在下载的时候,把那个标志变量的值设为0,这样不就停止了么
if(rtmsg == 'success'){
isLunxun =0;
alert("生成成功!");
}else if(rtmsg == 'fail'){
isLunxun =1;
alert("生成失败!");

我这个是个大概的思路,你可以参考一下,把你的代码改一下
更多追问追答
追问
从if(rtmsg == 'success'){
报错,
追答
报什么错?你之前有没有报错呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式