【问题标题】:clearInterval automatically自动清除间隔
【发布时间】:2013-06-16 17:35:24
【问题描述】:

我对如何自动停止脚本的 auto_refresh 有疑问。 这是我的代码:

<script type="text/javascript">
    function refresh_question(){        
        var url = "/question.do";       
        jQuery('#question').load(url, function myFunction(reponse, status, xhr){
             if(reponse=="fin")
            {
              clearInterval(auto_refresh );
            }           

        }).fadeIn("slow");  
    }   
    var auto_refresh = setInterval(refresh_question, 4000);     
</script>

这个脚本背后的想法是我想每 4 秒显示一个我的数据库的新问题,但是在第 10 个问题之后我应该停止测验,这意味着关闭 auto_refresh。我该怎么做?

【问题讨论】:

  • 你可以在函数外部添加一个计数器变量,在函数内部递增计数器,如果计数器为10,则在函数中调用clearInterval
  • 如果服务器发送“fin”作为响应,您当前的代码应该通过清除间隔来工作。你得到什么错误?
  • 不,因为 auto_refresh 仍然在刷新并且会引发异常

标签: javascript setinterval clearinterval


【解决方案1】:

只需使用每次调用刷新时递增的计数器:

<script type="text/javascript">
    var numberOfRefreshes = 0;
    var auto_refresh = 0;

    function refresh_question(){        
        var url = "/question.do";       
        jQuery('#question').load(url, function myFunction(reponse, status, xhr){
            numberOfRefreshes++; 

            if(numberOfRefreshes == 10)
            {
              clearInterval(auto_refresh);
            }           

        }).fadeIn("slow");  
    }   
    auto_refresh = setInterval(refresh_question, 4000);     
</script>

【讨论】:

  • 谢谢,我昨天试过类似的方法,但没用,我再试一次:)
  • 问题是变量“auto_refresh”在“myFunction”中是未知的,我不确定,但我认为是的!!
  • @ABDOZeidane 我已经移动了变量定义。
  • 糟糕,它的工作原理,非常感谢你,感谢你的帮助:)
  • 我正在测试 numberOfRefreshes == 10,而我的数据库中只有 3 个问题,Thnx 再次
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-29
  • 1970-01-01
相关资源
最近更新 更多