为了账号安全,请及时绑定邮箱和手机立即绑定

在JavaScript中停止setInterval调用

在JavaScript中停止setInterval调用

一只萌萌小番薯 2019-06-03 13:27:28
在JavaScript中停止setInterval调用我在用setInterval(fname, 10000);在JavaScript中每10秒调用一个函数。有可能在某件事上停止打电话吗?我希望用户能够停止数据的重复刷新。
查看完整描述

4 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

setInterval()返回一个间隔ID,您可以将该ID传递给clearInterval():

var refreshIntervalId = setInterval(fname, 10000);/* later */clearInterval(refreshIntervalId);

请看文档setInterval()clearInterval().


查看完整回答
反对 回复 2019-06-03
?
九州编程

TA贡献1785条经验 获得超4个赞

如果您将返回值设置为setInterval对于变量,可以使用clearInterval来阻止它。

var myTimer = setInterval(...);clearInterval(myTimer);


查看完整回答
反对 回复 2019-06-03
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

您可以设置一个新变量,并让它在每次运行时增加+(计数一个),然后使用一个条件语句结束它:

var intervalId = null;var varCounter = 0;var varName = function(){
     if(varCounter <= 10) {
          varCounter++;
          /* your code goes here */
     } else {
          clearInterval(intervalId);
     }};$(document).ready(function(){
     intervalId = setInterval(varName, 10000);});

我希望这会有所帮助,而且是正确的。


查看完整回答
反对 回复 2019-06-03
?
www说

TA贡献1775条经验 获得超8个赞

上面的答案已经解释了setInterval如何返回句柄,以及如何使用这个句柄来取消间隔计时器。

一些建筑方面的考虑:

请不要使用“范围-无”变量。最安全的方法是使用DOM对象的属性。最简单的地方是“文件”。如果刷新器是由“开始/停止”按钮启动的,则可以使用该按钮本身:

<a onclick="start(this);">Start</a><script>function start(d){
    if (d.interval){
        clearInterval(d.interval);
        d.innerHTML='Start';
    } else {
        d.interval=setInterval(function(){
          //refresh here
        },10000);
        d.innerHTML='Stop';
    }}</script>

因为函数是在按钮单击处理程序中定义的,所以不必再次定义它。如果再次单击按钮,则可以恢复计时器。


查看完整回答
反对 回复 2019-06-03
  • 4 回答
  • 0 关注
  • 1434 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信