With Chrome Intensive Throttling Chained Timers in Chrome Tabs are suspended after Chrome tab is idle for 5 minutes. https://developer.chrome.com/blog/timer-throttling-in-chrome-88/
I have an application that sends a periodic ping via a websocket to maintain the websocket health. But when the tab becomes idle the periodic pings will be suspended and the backend assumes the connection is disconnected.
I have used setTimeout function in a recursive manner to send the periodic ping. (cancelling the previous timeout and scheduling a new setTimeout periodically) But chrome detects this as a chained timer and suspends the timer.