首页 > 解决方案 > clearInterval 执行后刷新页面

问题描述

我有一些简单的代码,如下所示:

  var timer_ends = some_ts;

  var timer = setInterval(function() {
    time_diff = /* some calculation */

    if ( time_diff <= 0 ) {
      clearInterval(timer)
      // Want to location.reload(true) here but it would recursively run
      return;
    }
  }, 1000);

一旦计时器达到 0 或以下,我想

问题是,如果我刷新页面,计时器将重新启动,我们将递归地保持刷新。执行location.reload(true)一次且仅一次的最佳方法是第一次time_diff达到 0。此外,如果用户第一次访问该页面并且它已经为 0,则不应刷新。

标签: javascript

解决方案


  var timer_ends = some_ts;
  if (Boolean(localStorage.isEnteredBefore)) return;
  var timer = setInterval(function() {
    time_diff = /* some calculation */

    if ( time_diff <= 0 ) {
      clearInterval(timer)
      // Want to location.reload(true) here but it would recursively run
      localStorage.isEnteredBefore = true;
      return;
    }
  }, 1000);

推荐阅读