Мне очень понравилось объяснение Мауриуса (ответ с наибольшим количеством голосов) с тремя различными методами вызова setTimeout
.
В моем коде я хочу автоматически перейти к предыдущей странице после завершения события сохранения AJAX. Завершение события сохранения имеет небольшую анимацию в CSS, указывающую на успешное сохранение.
В моем коде я обнаружил разницу между первыми двумя примерами:
setTimeout(window.history.back(), 3000);
Этот не ждет времени ожидания - функция back () вызывается почти сразу, независимо от того, какое число я ввел для задержки.
Однако, изменив это на:
setTimeout(function() {window.history.back()}, 3000);
Это именно то, на что я надеялся.
Это не относится к операции back (), то же самое происходит с alert()
. В основном с alert()
, использованным в первом случае, время задержки игнорируется. Когда я закрываю всплывающее окно, анимация для CSS продолжается.
Таким образом, я бы рекомендовал второй или третий метод, который он описывает, даже если вы используете встроенные функции и не используете аргументы.