Ответ 1
Вам не нужно использовать анонимную функцию с setTimeout
. Вы можете сделать что-то вроде этого:
setTimeout(doSomething, 3000);
function doSomething() {
//do whatever you want here
}
У меня есть javascript файл, и в нескольких местах я хочу добавить небольшую задержку, поэтому script достигнет этой точки, подождите 3 секунды, а затем продолжит работу с остальной частью кода. Лучший способ, которым я думал сделать это, - создать функцию, которую я мог бы вызвать из любой точки script.
function startDelay(lengthOfDelay)
{
//code to make it delay for lengthOfDelay amount of time
}
Однако я не могу найти способ реализовать код, чтобы заставить его ждать. Я посмотрел на setTimeout, но вам нужно было жестко закодировать функцию в нем, что не помогло мне.
Есть ли какой-нибудь способ, которым я могу заставить script сделать паузу в течение нескольких секунд? У меня нет проблем с замораживанием пользовательского интерфейса, пока код приостановлен.
Если нет, есть ли способ, которым я мог бы использовать PHP sleep() для достижения этого? (Я знаю, что PHP - это серверная сторона, а Javascript - клиентская, но, возможно, есть способ, о котором я не слышал.)
Вам не нужно использовать анонимную функцию с setTimeout
. Вы можете сделать что-то вроде этого:
setTimeout(doSomething, 3000);
function doSomething() {
//do whatever you want here
}
Я только нашел этот ответ на другом форуме: JavaScript засыпать/ждать перед продолжением
Спасибо за все ваши ответы.
Ах да. Добро пожаловать в асинхронное выполнение.
В принципе, приостановка script приведет к тому, что браузер и страница перестанут отвечать на запросы в течение 3 секунд. Это ужасно для веб-приложений, и поэтому не поддерживается.
Вместо этого вы должны думать "на основе событий". Используйте setTimeout для вызова функции через определенное время, которое будет продолжать запускать JavaScript на странице в течение этого времени.
Вы можете создать задержку, используя следующий пример
setInterval(function(){alert("Hello")},3000);
Замените 3000 на # из миллисекунд
Вы можете разместить содержимое того, что вы хотите выполнить внутри функции.