Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
js.docx
Скачиваний:
22
Добавлен:
17.11.2018
Размер:
247.89 Кб
Скачать

Метод clearTimeout()

Метод clearTimeout() позволяет уничтожить поток, вызванный методом setTimeout(). Очевидно, что его применение позволяет более эффективно распределять ресурсы вычислительной установки. Для того чтобы использовать этот метод в примере с часами, нам нужно модифицировать функции и форму:

<HTML><HEAD><SCRIPT>

var Chasy_idut=false;

var potok;

function StartClock()

{

d = new Date();

document.f.c.value =

d.getHours()+':'+

d.getMinutes()+':'+

d.getSeconds();

potok = setTimeout('StartClock();',500);

Chasy_idut=true;

}

function StopClock()

{

clearTimeout(potok);

Chasy_idut=false;

}

</SCRIPT></HEAD><BODY>

<FORM NAME=f>

Текущее время:<INPUT NAME=c size=8>

<INPUT TYPE=button VALUE="Запустить" onClick="if(!Chasy_idut) StartClock();">

<INPUT TYPE=button VALUE="Остановить" onClick="if(Chasy_idut) StopClock();">

</FORM></BODY></HTML>

Пример 4.3. Часы с использованием setTimeout() и clearTimeout() (html, txt)

В данном примере для остановки часов используется метод clearTimeout(). При этом, чтобы не порождалось множество потоков, проверяется значение указателя на объект потока.

Методы setInterval() и clearInterval()

В предыдущих примерах для того, чтобы поток запускался снова и снова, мы помещали в функцию в качестве последнего оператора вызов метода setTimeout(). Однако в JavaScript для этих целей имеются специальные методы. Метод setInterval("код_JavaScript",time) выполняет код_JavaScript с периодом раз в time миллисекунд. Возвращаемое значение — ссылка на созданный поток. Чтобы остановить поток, необходимо вызвать метод clearInterval(поток).

События объекта window

Остановимся вкратце на событиях, связанных с объектом window. Обработчики этих событий обычно помещают как атрибут контейнера <BODY>.

  • Load — событие происходит в момент, когда загрузка документа в данном окне полностью закончилась. Если текущим окном является фрейм, то событие Load его объекта windowпроисходит, когда в данном фрейме загрузка документа закончилась, независимо от состояния загрузки документов в других фреймах. Использовать обработчик данного события можно, например, следующим образом:

  • <BODY onLoad="alert('Документ полностью загружен.');">

  • Unload — событие происходит в момент выгрузки страницы из окна. Например, когда пользователь закрывает окно, либо переходит с данной Web-страницы на другую, кликнув ссылку или набрав адрес в адресной строке, либо при изменении адреса страницы (свойства window.location) скриптом. Например, при уходе пользователя с нашей страницы мы можем позаботиться о его удобстве и закрыть открытое ранее нашим скриптом окно:

  • <BODY onUnload="myWin.close();">

  • Error — событие происходит при возникновении ошибки в процессе загрузки страницы. Если это событие произошло, можно, например, вывести сообщение пользователю с помощьюalert() или попытаться перезагрузить страницу с помощью window.location.reload(). В следующем примере мы назначаем обработчиком события Error функцию ff(), которая будет выдавать сообщение. В тексте программы мы допустили ошибку: слово Alert написано с заглавной буквы (помните, что в JavaScript это недопустимо?). Поэтому при открытии этого примера возникнет ошибка и пользователь получит об этом "дружественное" сообщение.

  • <SCRIPT>

  • function ff()

  • { alert('Произошла ошибка. Свяжитесь с Web-мастером.'); }

  • window.onerror = ff;

  • Alert('Привет');

  • </SCRIPT>

  • Focus — событие происходит в момент, когда окну передается фокус. Например, когда пользователь "раскрывает" свернутое ранее окно, либо (в Windows) выбирает это окно браузера с помощью Alt+Tab среди окон других приложений. Это событие происходит также при программной передаче фокуса данному окну путем вызова метода window.focus(). Пример использования:

  • <BODY onFocus="alert('Спасибо, что снова вернулись!');">

  • Blur — событие, противоположное предыдущему, происходит в момент, когда данное окно теряет фокус. Это может произойти в результате действий пользователя либо программными средствами — вызовом метода window.blur().

  • Resize — событие происходит при изменении размеров окна пользователем либо сценарием.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]