gpt4 book ai didi

javascript - setTimeout 对比 sleep 模式

转载 作者:行者123 更新时间:2023-12-03 16:43:45 26 4
gpt4 key购买 nike

根据我在几个 SO 答案中的理解,如果计算机在 setTimeout 之后进入休眠模式已被调用, sleep 周期应该被忽略。

例如:

  • t0:setTimeout(foo, 30000);
  • t0+20s:电脑进入休眠模式
  • t0+40s:计算机退出 sleep 模式
  • t0+50s:foo被称为

  • 但是,我的测试显示以下行为:
  • t0:setTimeout(foo, 30000);
  • t0+20s:电脑进入休眠模式
  • t0+40s:计算机退出 sleep 模式和foo被称为

  • 我的理解是,当计算机唤醒时,如果在 sleep 期间会触发超时,则立即触发,否则在 t0+[超时值] 时触发。

    那么预期的行为是什么?
    所有浏览器和操作系统都一样吗?

    我的一项测试(在 Windows 10 上使用最新版本的 Chrome): https://codepen.io/robloche/pen/GRJvEJB

    最佳答案

    总结一下上面的评论:

  • 我描述的行为似乎对每个人都有意义。
  • 我仍然不确定是否符合规范或所有浏览器都以这种方式实现它。


  • 我最初的问题是更新身份验证 token ,我最终得到了一个不使用 setTimeout 的解决方案(感谢 https://stackoverflow.com/a/6347336/603393 ):
  • 当我得到一个 token 时,我计算并存储下一个更新日期
  • 我用 setInterval定期检查下一次续订日期是否过去。

  • 这样,计算机是在下一个续订日期前 1 秒或 36 小时后唤醒都没有关系。

    关于javascript - setTimeout 对比 sleep 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60508262/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com