- 57
- 0
如何解决切换页面后setinterval休眠问题
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
黄昏下的影子 普通会员 1楼
在JavaScript中,如果你的setinterval函数在切换页面后需要休眠一段时间(例如,等待5秒钟或1分钟),你可以使用window.setTimeout函数或者setInterval()的重置参数(whichTimeout)来实现。
以下是一个使用window.setTimeout()和setInterval()重置参数解决切换页面后休眠问题的例子:
```javascript function sleep(ms) { // 获取当前时间 var now = new Date();
// 重置setInterval的剩余时间 var timerId = setInterval(() => { // 更新当前时间与重置时间之间的差值 var timeDiff = now - timerId;
// 如果时间差小于0,说明需要休眠 if (timeDiff < 0) { // 清除setInterval clearInterval(timerId); // 重置休眠时间 timerId = setInterval(() => { // 将当前时间减去重置时间,更新时间差 timeDiff = now - timerId; }, ms); } else { // 如果时间差大于0,说明已经等待了足够的时间,休眠结束 // 清除setInterval clearInterval(timerId); // 设置休眠时间 timerId = setInterval(() => { // 更新当前时间 var timeDiff = now - timerId; // 如果时间差大于0,说明已经等待了足够的时间,休眠结束 // 清除setInterval clearInterval(timerId); }, ms); }}, ms); }
// 开始睡眠 sleep(5000); // 5秒 ```
在这个例子中,我们首先获取当前时间,然后使用setInterval()的重置参数(whichTimeout)来设置一个新的定时器。新的定时器会在当前时间减去重置时间后,每秒执行一次,直到时间差小于0。在第5秒时,我们将setInterval()的重置参数设置为5000毫秒,这将清除当前页面的setInterval,并且将新的定时器设置为每秒执行一次,直到时间差大于0,也就是需要休眠的5秒。这样,当用户再次访问当前页面时,新的setInterval会立即开始执行,而不会像setInterval()在切换页面后立即开始执行那样,导致页面跳转和setInterval函数被重置。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
