javascript - 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,则不应刷新。
解决方案
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);
推荐阅读
- animation - 从外部屏幕帧动画并转换为内部屏幕
- python - 如何更改 django 中的 url password_reset 链接?
- node.js - 如何将 Zoom 集成到 reactjs 应用程序中?
- javascript - 尝试实施 Ceasar 密码时,我的解密调用返回无效响应,为什么?
- ruby - 詹金斯:找不到用于构建的ruby命令
- python - 使用 Python 进行网页抓取:TypeError:“NoneType”类型的参数不可迭代
- payment-gateway - 无法调用基本回调万事达卡
- rest - 以正确的方式设计 REST-API
- spring-boot - 使用 Keycloak 的 Spring Boot 来保护休息服务
- hyperledger-fabric - 无法在 Fabric 中创建具有新组织的频道,出现错误:尝试包含不在联盟中的成员