#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
Комментариев нет:
Отправить комментарий