Введение в JavaScript

Событие onLoad()


Событие onLoad() наступает в момент окончания загрузки документа браузером. Обработчик события указывается в контейнере BODY:

... <BODY onLoad="JavaScript_code"> ...

В нашем случае при загрузке документа должен начать выполняться цикл изменения картинки:

function movie() { eval("document.images[0].src='clock"+ i+".gif';"); i++;if(i>6) i=0; setTimeout("movie();",500); } ... <BODY onLoad="movie();"> ...

В примере используется бесконечный цикл, хотя можно реализовать и конечное число подмен:

function movie() { eval("document.images[0].src='clock"+ i+".gif';"); i++; if(i<7) { setTimeout("movie();",500);} } ... <BODY onLoad="movie();">

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

  1. Скрипт получает управление при событии onLoad().
  2. Заменяет картинку.
  3. Порождает новый скрипт и откладывает его исполнение на 500 миллисекунд.
  4. Текущий скрипт уничтожается JavaScript-интерпретатором.

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



Содержание раздела