Идущие часы и бегущая строка
Данный тип объектов наиболее часто используется на страницах WWW. В примере 7 приведен фрагмент программы, реализующей эти объекты:
Пример 7.
<HTML> <HEAD> <TITLE>JavaScript</TITLE> <SCRIPT LANGUAGE = "JavaScript"> <!- Hide script from user adv_string = "Internet\" status_string = adv_string + adv_string + adv_string + adv_string + adv_string + adv_string i=0 function background() { window.status = status_ string.substring (i,i+180) ... current_date = new Date() window.document.form1. clock.value = current_ date.getHours() + ":" + current_date.getMinutes () + ":" + current_ date.getSeconds() id = setTimeout("back ground()", 500) window.document.form1. kuku.value = "number"+i } //This is the end of code definition -> </SCRIPT> </HEAD> <BODY onLoad = "background()" BACKGROUND=www_wal0.jpg> <H1>JavaScript</H1> <FORM NAME=form1 ACTION = "new_window()"> <INPUT NAME = clock TYPE = text SIZE = 8MAXLENGTH=8> <HR> <INPUT TYPE=button NAME = help Value = "HELP" onClick = "window.open ("clock.htm", "Clock_Window", "scrollbars = yes,width = 450, height=350") ">. <HR> <INPUT NAME = kuku type = text> <HR> </FORM <P> </BODY> </HTML>
Для создания скрипта в заголовок документа (контейнер HEAD) включен контейнер SCRIPT. До недавнего времени атрибут LANGUAGE в этом контейнере не являлся обязательным. Но с момента появления VBSCRIPT смысл в указании типа языка появился - Navigator не понимает скриптов на других языках. Отсутствие атрибута может привести к ошибкам при отображении гипертекстовых страниц. Далее в тексте страницы определен комментарий, в который включен текст скрипта. Начинается комментарий строкой:
<!- Hide script from user
И кончается строкой:
// This is the end of code definition->
Функция, реализующая бегущую строку, использует метод open - встроенную в JavaScript функцию, которая определена над объектом window. В результате открывается новое окно Netscape Navigator и в него загружается документ. Вызов функции осуществляется после нажатия на соответствующую кнопку. Таким образом, функция будет выполнена только в том случае если произойдет событие, описанное атрибутом onClick в контейнере INPUT.
Изначально предполагалось, что программа просмотра, которая поддерживает JavaScript будет исполняться в среде многопотоковых операционных систем. В этом случае к моменту порождения нового потока старый уже завершится и setTimeout будет порождать последовательно исполняемые потоки. Однако, из-за неаккуратной реализации JavaScript, команда setTimeout стала просто "пожирать" ресурсы компьютера. Системы Windows 3.x вообще не являются многопоточными и в них просто происходит переполнение стека при выполнении данного скрипта, а как быстро "упадет" система зависит от объема исполняемой по setTimeout функции. Самое лучше, что можно посоветовать, если вдруг на экране появляется прокрутка - поскорее покинуть такую страницу. Справедливости ради следует отметить, что прокрутку можно организовать и другими способами, поэтому ее появление не обязательно должно вызывать крах системы или крах программы просмотра.
JavaScript - это не единственный язык управления сценариями просмотра документов. Имеется другая версия аналогичного языка - VBScript на основе Visual Basic. Кроме того, управлять сценарием просмотра можно и из Java-апплетов, что, конечно, сложнее, но зато более надежно и безопасно. При этом программист получает возможность наследования и прочие атрибуты объектно-ориентированного программирования. В конце концов, для создания фреймов и окон можно использовать атрибуты соответствующих контейнеров HTML, которые позволяют делить рабочую область экрана на фрагменты, перекрывать объекты и восстанавливать первоначальный вид страницы. В Navigator 3.0 появились новые типы объектов и функции над ними.