如果删除了元素,是否不必中断setInterval?

时间:2013-12-09 04:14:54

标签: javascript

我使用setInterval如下所示,直到现在我使用它的方式完全相同但如果从Document中删除了元素,则此间隔将继续不必要地工作。我还没有看到处理这种情况的例子。

是否没有必要处理此案件?如果我必须处理它,那么什么是最好的休息间隔?

var element = $('bla');
setInterval(function () {
    element.text(new Date().toString());
}, 1000);

2 个答案:

答案 0 :(得分:2)

只是评论:

@hicurin,您可以考虑使用立即调用的函数表达式(IIFE):

(function() {
  var element = $('bla');
  var interval = setInterval(function () {
    element.text(new Date());

    // check if element is removed
    if(!$('bla').length && interval) {
      clearInterval(interval);
    }
  }, 1000);
}());

答案 1 :(得分:1)

试试这个:

var element = $('bla');
var int = setInterval(function () {
    element.text(new Date().toString());
    // check if element is removed
    if(!(element.length > 0) || element == undefined){
      clearInterval(int);
    }
}, 1000);