JS关于中止setInterval()的方法,为什么会进入死循环呢?

技术专家
企业官方账号
2009-05-08 06:48:06
<script type="text/javascript">
var post_freq = 0.75;
var user_freq = 3.75;
setInterval("document.getElementById(\"total_new\").innerHTML = parseInt(document.getElementById(\"total_new\").innerHTML)+1;document.getElementById(\"total_active\").innerHTML = parseInt(document.getElementById(\"total_active\").innerHTML)+1",1000*post_freq);
setInterval("document.getElementById(\"total_user\").innerHTML = parseInt(document.getElementById(\"total_user\").innerHTML)+1",1000*user_freq);

</script>

这段JS我是要进入一个Interval然后在函数循环过程中达到一定条件后中止循环;可是调试后发现clearInterval(total_new);不停地执行导致页面很卡。

终止条件
<span style="margin:0 0px 0 10px;">total_new:<font id="total_new" style="color:#00AA00">35279</font></span>比如这个就是total_new 的条件
又比如total_new 从35279一直加到99999后终止


请问大哥们有什么其他方法停止setInterval呢?如何修改上述代码?


...全文
1276 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
技术专家 2011-05-31
  • 打赏
  • 举报
回复
www.gg3m.com
caiying2009 2009-05-15
  • 打赏
  • 举报
回复
请查看私信,谢谢
技术专家 2009-05-15
  • 打赏
  • 举报
回复
如果你能向我们公司头一份简历过来 那最好不过了 pls send to admin@bindeng.com MSN:gcoge@msn.com
技术专家 2009-05-15
  • 打赏
  • 举报
回复
方便留下你的联系方式不?pls send to admin@bindeng.com MSN:gcoge@msn.com
caiying2009 2009-05-15
  • 打赏
  • 举报
回复
衷心感谢LZ
技术专家 2009-05-15
  • 打赏
  • 举报
回复
衷心感谢 caiying2009 不过我得分只有这么多了 全部给你吧 有机会请你到我公司来作技术顾问额 WWW.GCOGE.CN
caiying2009 2009-05-12
  • 打赏
  • 举报
回复
this?

<script type="text/javascript">
var post_freq = 0.75;
var user_freq = 3.75;

function X1(k){
var v=parseInt(document.getElementById("total_new").innerHTML)
if (v>=k){
clearInterval(t1);
if (v<99999999)
setTimeout(function(){
t1=setInterval("X1(99999999)",10*post_freq);
},60*1000)//=60s=一分钟
return
}
document.getElementById("total_new").innerHTML = v+1;
document.getElementById("total_active").innerHTML = parseInt(document.getElementById("total_active").innerHTML)+1
}
function X2(k){
var v=parseInt(document.getElementById("total_user").innerHTML)
if (v>=k){
clearInterval(t2);
if (v<99999999)
setTimeout(function(){
t2=setInterval("X2(99999999)",10*post_freq);
},60*1000)//=60s=一分钟
return
}
document.getElementById("total_user").innerHTML = v+1
}

t1=setInterval("X1(35555)",10*post_freq);
t2=setInterval("X2(35555)",1*user_freq);

</script>

<span style="margin:0 0px 0 10px;">total_new: <font id="total_new" style="color:#00AA00">35279 </font></span><br>
<span style="margin:0 0px 0 10px;">total_active: <font id="total_active" style="color:#00AA00">35279 </font></span><hr>
<span style="margin:0 0px 0 10px;">total_user: <font id="total_user" style="color:#00AA00">35279 </font></span><br>


技术专家 2009-05-12
  • 打赏
  • 举报
回复
感谢caiying2009
Good!

不过我还想比如增加到35555,然后过一定时间比如一分钟,又开始以不同的步长增加直到增加到99999999后就终止

如何写呢?
wz_307 2009-05-09
  • 打赏
  • 举报
回复
首先使用setInterval时应该赋值给一个变量,clear相应的对象即可

var t1 = window.setInterval(...);
window.clearInterval(t1);
fosjos 2009-05-08
  • 打赏
  • 举报
回复
[Quote=引用楼主 SmartTony 的帖子:]
请问大哥们有什么其他方法停止setInterval呢?如何修改上述代码?
[/Quote]
只有一种方法可以停止,楼上已经写了
不知道楼主有没有看过setInterval和clearInterval怎么使用
caiying2009 2009-05-08
  • 打赏
  • 举报
回复
[code=INIFile]
<script type="text/javascript">
var post_freq = 0.75;
var user_freq = 3.75;

function X1(){
var v=parseInt(document.getElementById("total_new").innerHTML)
if (v>=35555){clearInterval(t1);return}
document.getElementById("total_new").innerHTML = v+1;
document.getElementById("total_active").innerHTML = parseInt(document.getElementById("total_active").innerHTML)+1
}
function X2(){
var v=parseInt(document.getElementById("total_user").innerHTML)
if (v>=35555){clearInterval(t2);return}
document.getElementById("total_user").innerHTML = v+1
}

t1=setInterval("X1()",10*post_freq);
t2=setInterval("X2()",1*user_freq);

</script>

<span style="margin:0 0px 0 10px;">total_new: <font id="total_new" style="color:#00AA00">35279 </font></span><br>
<span style="margin:0 0px 0 10px;">total_active: <font id="total_active" style="color:#00AA00">35279 </font></span><hr>
<span style="margin:0 0px 0 10px;">total_user: <font id="total_user" style="color:#00AA00">35279 </font></span><br>

[/code]
技术专家 2009-05-08
  • 打赏
  • 举报
回复
终止条件
<span style="margin:0 0px 0 10px;">total_new: <font id="total_new" style="color:#00AA00">35279 </font> </span>比如这个就是total_new 的条件
又比如total_new 从35279一直加到99999后终止

87,917

社区成员

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

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