Last year, Chrome shipped a feature to increase battery life by limiting JavaScript timer wake ups in background webpages.
setTimeout(()=>{
console.log('done')
}, 1000)
The code above will print logs after 1 second.But when the webpage is in background, it will print after about 10 seconds. It causes a lot of problems.
So, are there any solutions can prevent Chrome from throttling my timers?
Last year, Chrome shipped a feature to increase battery life by limiting JavaScript timer wake ups in background webpages.
setTimeout(()=>{
console.log('done')
}, 1000)
The code above will print logs after 1 second.But when the webpage is in background, it will print after about 10 seconds. It causes a lot of problems.
So, are there any solutions can prevent Chrome from throttling my timers?
Share Improve this question edited Jun 15, 2021 at 7:00 WhiteYin asked Jun 15, 2021 at 3:27 WhiteYinWhiteYin 451 silver badge5 bronze badges 02 Answers
Reset to default 4You could try loading the script when the window is active, but if it can't be helped, HackTimer.js is a good workaround using Web Workers.
You cannot changes this for your end-users if you are simply the maintainer of the website.
That said, if you are in control of the browser, there is a flag that disables this feature — which you can use when starting Chrome:
--disable-background-timer-throttling
This was already possible in 2019 and remended by Google for automation tests, see this Pull Request.