关于setInteval定时器在不同浏览器下表现差异

背景:

项目下用到websocket, 中间使用了setInterval 定时向服务端发送心跳包, 5s/次, 观察正常, 就将浏览器最小化后, 经过了两天, 周一过来查看, 咋才 5000次;

问题分析:

遇到这种简单的问题当然是请教一下GPT 来的最快最实际, 不出所料, 马上得到证实;

chrome 88 版本之后就加入了这个功能, 当标签页处于非活动状态时, 定时器的循环时间会被节流, 设置为 1分钟每次;

https://developer.chrome.com/blog/timer-throttling-in-chrome-88/

解决办法:

在启动命令后增加 --disable-background-timer-throttling 参数

例如: chrome.exe --disable-background-timer-throttling

相关推荐
牛奶14 小时前
浏览器是怎么把代码变成页面的?
前端·javascript·chrome
冬至喵喵21 小时前
构建 CLI 的 Python 框架:Typer技术介绍
开发语言·chrome·python
ISkp3V8b41 天前
ASP.NET MVC]Contact Manager开发之旅之迭代2 - 修改样式,美化应用
前端·chrome
刘~浪地球2 天前
Redis 从入门到精通(八):有序集合操作详解
数据库·chrome·redis
DYuW5gBmH2 天前
Chrome DevTools MCP 让 AI 无缝接管浏览器调试会话
前端·chrome·chrome devtools
刘~浪地球2 天前
Redis 从入门到精通(七):集合操作详解
数据库·chrome·redis
秋夜无霜3 天前
一场因chrome浏览器调试模式network中设置了offline模式导致的页面调试就会导致数据无法正常加载
chrome
刘~浪地球3 天前
Redis 从入门到精通(六):列表操作详解
数据库·chrome·redis
入瘾3 天前
etcd 显示连接失败
数据库·chrome·etcd
Z_Wonderful4 天前
在 Next.js 中,使用 [id] 或 public 作为文件夹或文件名是两种完全不同的概念,分别对应 动态路由 和 静态资源托管
javascript·网络·chrome