当前位置: 首页 > news >正文

设置了超时时间但是不起作用,浏览器里的setTimeout有 bug?

你可能也遇到过这样的问题:写个setTimeout定时器,结果时间一长,浏览器就开始捣乱。比如你想要设置一个几小时甚至几天的延时,突然发现浏览器不听话了!这时候你就会想,难道浏览器的定时器是有上限的?没错,你没看错,setTimeout其实有个最大值限制,时间一超过这个值,就会出问题。别担心,今天咱们就来聊聊怎么解决这个问题,教你一招轻松搞定超长延时。

 

为什么setTimeout会出问题?

先来说说setTimeout的工作原理。你可以理解为它是一个“闹钟”,你告诉浏览器:“喂,过几秒钟叫我一下!”通常你设置的时间可能就是几秒、几十秒。但如果你设置个比如24小时的延时呢?这就是个大问题,因为浏览器的定时器有个时间上限。这个上限到底是多少呢?根据浏览器的不同实现,它通常是在2147483647毫秒,大概是24.8天左右。

听起来时间已经很长了对吧?但如果你是开发一些长期运行的应用,比如倒计时工具,或者是一个需要在后台运行很久的任务,这个上限可能就远远不够了。一旦超过这个值,定时器可能会立刻触发,完全不按预期来。

举个栗子

假设你想设置一个48小时的延时:

setTimeout(() => {
  console.log("两天后提醒!

http://www.mrgr.cn/news/53864.html

相关文章:

  • JVM进阶调优系列(4)年轻代和老年代采用什么GC算法回收?
  • C#学习笔记(一)
  • RestHighLevelClient操作es查询文档
  • nfs 中 lockd 与 statd 的作用
  • 【网安第三章】——XSS
  • Linux工具的使用-【git的理解和使用】【调试器gdb的使用】
  • Linux下的进程解析(level 2)
  • 闪迪sd卡如何恢复删除的内容?这3种方法很实用
  • 【数据库系统概论】关系数据库标准语言SQL(一)数据定义【超详细】
  • c++基础知识1
  • MYSQL OPTIMIZE TABLE 命令重建表和索引
  • C++初阶——入门
  • vuex的store应用
  • 枸杞常见病虫害识别数据集(猫脸码客 第220期)
  • 【C++笔试强训】如何成为算法糕手Day11
  • Python编程探索:从基础语法到循环结构实践(下)
  • Unity Apple Vision Pro 自定义手势识别交互
  • 编写自定义组件props报错 TypeError: Right-hand side of ‘instanceof‘ is not an object的解决方法
  • AI论文写作:如何轻松实现高原创度大揭秘
  • 一次恶意程序分析
  • 【JAVA 百日谈】 001 AssemblyAndDisDemo
  • rabbitMQ的延迟队列(死信交换机)
  • 消费即赚,循环购物模式引领潮流
  • [LeetCode] 1162. 地图分析
  • vue el-drawer 标签点击蒙版就关闭的问题
  • 密码学原理