В JavaScript код может выполняться по расписанию.
ТвитнутьВ JavaScript код может выполняться по расписанию например, Вы можете задать, чтобы код функции начал выполняться только через 30 секунд после ее вызова.
Для выполнения кода по расписанию в JavaScript предусмотрено два специальных метода:
setTimeout(код,промежуток_времени) позволяет выполнить код через заданный промежуток_времени один раз.
Пример
<body onload='start()'> <script type=text/javascript > //Зададим функцию start, которая будет вызвана после полной загрузки документа function start(){ //Создадим переменную с текстом, который будет выведен на страницу txt='Данный текст будет отображен через 3 секунды после полной загрузки документа.'; //Выведем на страницу текст через 3 секунды после загрузки документа setTimeout('document.write(txt)',3000); } </script> </body>
setInterval(код,промежуток_времени) позволяет выполнять код через заданный промежуток_времени бесконечное количество раз.
Пример
<body onload='start()'> <p id='text1'>Здесь будет отображено текущее время</p> <script type=text/javascript > //Зададим функцию time, которая будет выводить текущее время в абзац //с id=text1 function time(){ //Определим текущее время var dat = new Date(); var hour=dat.getHours(); var min=dat.getMinutes(); var sec=dat.getSeconds(); tim=hour+':'+min+':'+sec; //Выведем текущее время в абзац с id=text1 document.getElementById('text1').innerHTML=tim; } /* Функция start будет запущена после полной загрузки документа и будет вызывать функцию time через каждую секунду */ function start(){ id=setInterval('time()',1000); } </script> </body>
Методы setTimeout() и setInterval() после их запуска возвращают идентификатор вызова.
Используя этот идентификатор и методы clearTimeout() и clearInterval() Вы можете остановить выполнение кода вызванного по расписанию.
С помощью clearTimeout(идентификатор_вызова) Вы можете остановить выполнение кода вызванного методом setTimeout().
Пример
<body onload='time()'> <p id='text1'>Здесь будет отображено время</p> <input type=button value='Стоп' onclick='stop()' /> <script type=text/javascript > /* Зададим функцию time, которая будет вызывается после полной загрузки документа и будет выводить текущее время в абзац с id=text1 */ function time(){ //Определим текущее время var dat = new Date(); var hour=dat.getHours(); var min=dat.getMinutes(); var sec=dat.getSeconds(); tim=hour+':'+min+':'+sec; //Выведем текущее время в абзац с id=text1 document.getElementById('text1').innerHTML=tim; /* Вызовем данную функцию снова через 1 секунду и сохраним идентификатор вызова в переменную id */ id=setTimeout('time()',1000); } // С помощью функции stop Вы можете остановить выполнение кода function stop() { //Остановим функцию с помощью идентификатора id clearTimeout(id); } </script> </body>
С помощью clearInterval(идентификатор_вызова) Вы можете остановить выполнение кода вызванного методом setInterval().
Пример
<body onload='start()'> <p id='text1'>Здесь будет отображено время</p> <input type=button value='Стоп' onclick='stop()' /> <script type=text/javascript > /* Зададим функцию time которая будет вызывается после полной загрузки документа и будет выводить текущее время в абзац с id=text1 */ function time(){ //Определим текущее время var dat = new Date(); var hour=dat.getHours(); var min=dat.getMinutes(); var sec=dat.getSeconds(); tim=hour+':'+min+':'+sec; //Выведем текущее время в абзац с id=text1 document.getElementById('text1').innerHTML=tim; } /* Функция start будет вызвана после полной загрузки страницы и будет вызывать функцию time() каждую секунду */ function start(){ /* Вызываем функцию time каждую секунду сохраняя при этом идентификатор вызова в переменную id */ id=setInterval('time()',1000); } /* С помощью функции stop Вы можете остановить выполнение кода */ function stop(){ //Используя идентификатор вызова остановим функцию clearInterval(id); } </script> </body>