Что такое функция setTimeOut () в JavaScript? - PullRequest
3 голосов
/ 29 декабря 2010

Могу ли я спросить, что функция метода setTimeOut в JavaScript? Как показано ниже:

function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// add a zero in front of numbers<10
m=checkTime(m);
s=checkTime(s);
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout('startTime()',500);
}

Ответы [ 4 ]

5 голосов
/ 29 декабря 2010

Не уверен, что ты хочешь.

setTimeout - метод объекта глобального окна.Он выполняет данную функцию (или оценивает данную строку) по истечении времени, указанного в качестве второго переданного параметра.

Подробнее о setTimeout.

4 голосов
/ 29 декабря 2010

setTimeout() просто планирует (устанавливает таймер) функцию, которая будет выполняться позднее, в этом случае 500 мс. В вашем конкретном коде он обновляет экран с текущим временем каждые полсекунды (он планирует только один звонок, через 500 мс ... но , что startTime запланированный вызов другой ).

Также ... передача строки, когда вы можете избежать ее, является плохой практикой, для вашего примера это должно быть:

t = setTimeout(startTime, 500);
0 голосов
/ 29 декабря 2010

setTimeOut устанавливает таймер и выполняет заданный код по истечении этого таймера.Поэтому, используя ваш код, если startTime вызывается один раз, он повторяется каждые полсекунды.

Кстати.Я предполагаю, что задержка в 500 мс используется для обхода небольших отклонений в часах.Вы хотите обновлять значение элемента каждую целую секунду.Для этого лучше рассчитать время до следующей целой секунды и установить его как задержку.Это даст вам более точные часы.

0 голосов
/ 29 декабря 2010

Запланирует вашу функцию startTime для повторного запуска через полсекунды (500 миллисекунд), обновляя ваши часы.

...