Подскажите альтернатива setTimeout и setInterval
Доброго дня, коллеги, возникла потребность в асинхронной альтернативе setTimeout, setInterval, сейчас я использую запись в Индекс ДБ как такой аналог прерывания рутины в js движке, но дело затратное по ресурсам, возможно кто-то знает еще варианты вызовов в нативном js, которые работаю на основе колбэков и возвращаются в новой рутине?
|
Поясните еще раз (если не по-русски, то хотя бы в терминах javascript),
где что вызываете, и где что должно возвращаться? |
Ситуация такова, у меня есть набор вкладок и они не активны, в неактивных вкладках все setTimeout и setInterval задерживаются до 1000 мс, но в Сафари все намного хуже, он задерживает и на 20 сек и на 40 сек вызов функции в setTimeout, то есть я получаю случайный задержку от 1 сек до 40 сек, на таймаутах строится коммуникация вкладок и определение живых вкладок, но из-за непредсказуемых задержек вся механика ломается.
Поэтому мне нужна какая либо альтернатива таймаута, которая не попадет под "заморозку" в неактивной вкладке, надеюсь стало немного понятнее |
Под рутиной подразумевал поток выполняемого кода до завершения всего синхронного кода,
Например функция помещенная в setTimeout будет запущена как отдельный поток в будущем, сейчас она не будет блокировать браузер |
Цитата:
Кроме IndexDB, WebSockets и WebRTC все остальное замораживается. Ну еще вкладка с работающим звуком не попадает под заморозку. |
Часовой пояс GMT +3, время: 21:32. |