Страницы

Поиск по вопросам

четверг, 2 апреля 2020 г.

setTimeout не работает если покинуть вкладку

#javascript

                    
Нажимаю кнопку сохранить. Вызывается setTimeout с задержкой 1500. 

Далее сразу покидаю вкладку, однако данные не обновляются, так как setTimeout не
отработал. Хотя предполагается что он должен сохранить данные с некоторой задержкой. 
Можно ли как то гарантировать выполнение некоторых данных с задержкой даже при переключении
на другую вкладку?
    


Ответы

Ответ 1



Вместо setTimeout я предлагаю вам использовать requestAnimationFrame. В примере кода ниже, когда вы запустите анимацию и переключите вкладку, а затем вернетесь обратно, вы увидите, что не смотря на смену вкладки, анимация продолжалась дальше. Таким образом, вы можете использовать requestAnimationFrame вместо setTimeout (причем использовать можно не только для анимации). Подробнее почитайте тут и тут. var div = document.querySelector('div'); var start = 100; function step(timestamp) { var progress = timestamp - start; a = Math.min(progress/10, 20000) + "px"; div.style.left = a if (progress < 20000) { requestAnimationFrame(step); } } requestAnimationFrame(step) div { position: absolute; }
test


Комментариев нет:

Отправить комментарий