У меня есть крошечная веб-страница, которая передает музыку, которую я могу слушать на своем телефоне. JavaScript на странице устанавливает тайм-аут, который загружает следующую песню и воспроизводит ее при завершении первой песни.
Пока вкладка активна, все работает нормально. Но после того, как вкладка неактивна, тайм-ауты продолжают работать в течение нескольких минут, а затем, как только закончится игра в текущий момент, следующая песня не загружается и не воспроизводится.
Я предполагаю, что это связано с тем, что Chrome приостанавливает выполнение JavaScript для неактивной вкладки, но я не хочу, чтобы мой экран все время играл музыку.
Я отлаживал код с помощью отладчика мобильных устройств Chrome, устанавливая тайм-аут для запуска каждые 500 мс, который показывает только текущую дату. Как только экран станет черным, тайм-аут упадет до одного раза в 1000 мс, что ожидается, но через несколько минут тайм-аут прекратится вообще. Но как только вкладка активна снова, все приостановленные таймауты активируются и запускаются.
Ожидается и будет учтено изменение Chrome setInterval/setTimeout до 1000 мс, но приостановка выполнения полностью заставляет мою страницу перестать работать.
Я попытался сделать так, чтобы активная вкладка выполняла запросы AJAX так часто, но они также приостанавливаются. Ничего, что я пробовал, не позволяет запустить JavaScript.
В принципе, есть ли способ обойти это? Есть ли способ сохранить вкладку активным, когда экран выключен?