Здравствуйте!
Суть такова. На Vue.js есть render, который рисует график на canvas каждые 100 миллисекунд. Когда вкладка активна, то всё ок. Когда же вкладка не активна какое-то время (всегда по-разному), то при переключении на эту вкладку render начинает выполняться не каждые 100 миллисекунд, а каждые рандомное количество миллисекунд. Складывается ощущение, что всё виснет. Приходится либо ждать какое-то продолжительное время, либо просто обновлять страницу. Отмечу, что ещё на сайте есть сокеты, но с ними вроде всё ок в это время.
Известен такой факт:
Большинство браузеров (десктопных в первую очередь) продолжают выполнять setTimeout/setInterval, даже если вкладка неактивна.
При этом ряд из них (Chrome, FF, IE10) снижают минимальную частоту таймера, до 1 раза в секунду. Получается, что в «фоновой» вкладке будет срабатывать таймер, но редко.
При работе от батареи, в ноутбуке – браузеры тоже могут снижать частоту, чтобы реже выполнять код и экономить заряд батареи. Особенно этим известен IE. Снижение может достигать нескольких раз, в зависимости от настроек.
Так вот, возможно ли как-то изменить этот момент, чтобы даже в фоном режиме работало четко и сокеты и render?
Буду признателен за ваш ответ.