Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Подскажите альтернатива setTimeout и setInterval (https://javascript.ru/forum/css-html/83371-podskazhite-alternativa-settimeout-i-setinterval.html)

FireVolkhov 25.11.2021 08:31

Подскажите альтернатива setTimeout и setInterval
 
Доброго дня, коллеги, возникла потребность в асинхронной альтернативе setTimeout, setInterval, сейчас я использую запись в Индекс ДБ как такой аналог прерывания рутины в js движке, но дело затратное по ресурсам, возможно кто-то знает еще варианты вызовов в нативном js, которые работаю на основе колбэков и возвращаются в новой рутине?

Rise 25.11.2021 09:57

Цитата:

Сообщение от FireVolkhov
рутине

Что это такое?

voraa 25.11.2021 09:57

Поясните еще раз (если не по-русски, то хотя бы в терминах javascript),
где что вызываете, и где что должно возвращаться?

FireVolkhov 25.11.2021 10:28

Ситуация такова, у меня есть набор вкладок и они не активны, в неактивных вкладках все setTimeout и setInterval задерживаются до 1000 мс, но в Сафари все намного хуже, он задерживает и на 20 сек и на 40 сек вызов функции в setTimeout, то есть я получаю случайный задержку от 1 сек до 40 сек, на таймаутах строится коммуникация вкладок и определение живых вкладок, но из-за непредсказуемых задержек вся механика ломается.
Поэтому мне нужна какая либо альтернатива таймаута, которая не попадет под "заморозку" в неактивной вкладке, надеюсь стало немного понятнее

FireVolkhov 25.11.2021 10:37

Под рутиной подразумевал поток выполняемого кода до завершения всего синхронного кода,
Например функция помещенная в setTimeout будет запущена как отдельный поток в будущем, сейчас она не будет блокировать браузер

voraa 25.11.2021 11:43

Цитата:

Сообщение от FireVolkhov
Поэтому мне нужна какая либо альтернатива таймаута, которая не попадет под "заморозку" в неактивной вкладке, надеюсь стало немного понятнее

Понятнее стало, но похоже никакой альтернативы нет.
Кроме IndexDB, WebSockets и WebRTC все остальное замораживается.
Ну еще вкладка с работающим звуком не попадает под заморозку.

Rise 25.11.2021 13:39

FireVolkhov, Web Workers.


Часовой пояс GMT +3, время: 09:37.