js计时器问题?

_0KBSR0SKTAFUQC0VJ7@X35.png
如图倒计时小于当前时间的时候刷新页面,在定时器里面写会无限刷新页面,应该如何修改

阅读 1.8k
4 个回答

用sessionStorage记录下是否刷新过了

新手上路,请多包涵

方法外面加一个条件判断,判断条件根据下面设置获取到url参数。
刷新页面的时候在url上加一个参数,如果获取到这个参数值那么说明页面已经刷新过一次了,就不用再刷新了

这不是定时器的问题,是实现逻辑的问题,你就算换成延时器 setTimeout 也是一样的。
你陷入的循环是:

graph LR
    A1(页面初始化) -->
    A2(初始化定时器) -->
    A3(检查时间) -->
    A4(刷新页面) --> A1

在开始定时器之前,可以先判断 endTime 是否已经过了。如果已经过了就不要去设置定时器了。

另外,既然 endDate 是不会变的,那就没必要在每次触发定时处理的时候去计算 new Date(endTime),可以在设置定时器之前做好计算:endTimeValue = new Date(endTime).getTime()

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏