Введение
При создании документов для WWW-серверов можно
воспользоваться различными средствами. Самое распространенное из них
- это язык HTML, но возможности этого языка ограничены созданием
документов, содержащих статические тексты, таблицы и изображения.
Для разработки WEB-страниц, на которых ведется диалог с клиентом,
выполняется анимация изображений, реализуется контекстно-зависимый
текстовый и графический ввод-вывод, используются другие средства,
расширяющие возможности HTML. Среди них - CGI (Common Gateway
Interface), Java и JavaScript.
CGI предполагает использование традиционных языков
программирования: компилируемых (таких как C, C++, Fortran), и
интерпретируемых (как, например Perl). При запросе клиента на услуги
CGI-программы сервер выступает в роли посредника между ними. Ответ
от CGI-программы должен быть в форме HTML-документа, GIF-файла,
видеоклипа и данных любого типа, поддерживаемого браузером клиента.
Естественно, что CGI-программы ориентированы на конкретные
НТТР-серверы, работающие под управлением конкретных операционных
систем, из этого следует вывод, что CGI-программы являются
зависимыми от платформы.
JAVA - язык программирования высокого уровня,
ориентированный на создание сетевых приложений. Разработанные с его
помощью приложения являются независимыми от типа используемой ЭВМ и
ОС, поскольку результаты компиляции программ представляются в кодах
виртуальной JAVA-машины, так называемых "байт-кодах. В
WEB-технологии язык JAVA используется для создания аплетов -
приложений, байт-коды которых передаются по сети клиенту и
немедленно исполняются его браузером. Создание таких приложений
является трудоемкой и требует достаточно высокой квалификации
разработчиков.
JavaScript - язык программирования, который
проистекает из JAVA, но существенно проще его. Использование
JavaScript дает возможность автору HTML-документа, не являющемуся
профессиональным программистом, создавать динамические страницы и
обрабатывать заполненные клиентом формы. JavaScript - компактный,
объектно-ориентированный язык для разработки клиентских и серверных
сетевых приложений. Браузеры, такие, например, как Netscape
Navigator, интерпретируют JavaScript-операторы, вложенные в HTML
страницу. Имеются два типа JavaScript: Navigator JavaScript, также
называемый клиентским JavaScript и LiveWire JavaScript, называемый
серверным JavaScript. LiveWire JavaScript позволяет создавать
серверные приложения, подобные CGI-программам.
JavaScript в Navigator'е. Netscape Navigator 2.0 ( и
более поздние версии ) может интерпретировать JavaScript операторы,
вложенные в HTML страницу. Когда Navigator запрашивает такую
страницу, сервер посылает полное содержание документа, включая HTML
и JavaScript операторы, по сети клиенту. Навигатор обрабатывает
HTML-теги и выполняет JavaScript- операторы, выводя результаты на
экран. Этот процесс иллюстрируется следующим рисунком.
Например, вы можете написать функцию JavaScript,
проверяющую информацию, которою вводят пользователи, попросить от
них почтовый индекс или номер телефона. Без передачи по сети,
браузер, используя HTML-страницу с вложенными операторами языка
JavaScript, может проверить введенные данные и запросить новый ввод,
если предыдущий был неправилен.
JavaScript в LiveWire. LiveWire - инструментальная
среда разработки, в которой используется JavaScript для создания
серверных приложений, подобных CGI (Commonn Interface Gateway )
программам. В отличие от Navigator JavaScript, LiveWire JavaScript
операторы компилируются в выполняемые байт-коды. Процесс работы
таких приложений иллюстрируется следующим рисунком:
Исполнение программ в байт-кодах может выполняться
как у клиента, так и на сервере, что определяется соответствующими
тегами. В отличие от стандарта CGI-программ, LiveWire JavaScript
объединен непосредственно с HTML страницами, что обеспечивает
быструю разработку в рамках единого документа. LiveWire JavaScript
также обеспечивает объекты и методы для доступа к базе данных,
которые служат в качестве интерфейса к SQL-базе данных сервера. В
отличие от Navigator JavaScript имеется возможность записывать
информацию на жесткий диск.
Как видно из ранее сказанного, клиент и сервер
JavaScript значительно отличаются, но они имеют и общие элементы:
- синтаксис предложений и правила грамматики для выражений,
- переменные и литералы,
- встроенные объекты и функции
То есть, если у вас сеть LiveWire, то вы можете
писать функции, которые работают или на клиенте, или на сервере.
Различные версии JavaScript работают с определенными
версиями Navigator. Например, JavaScript 1.1 - с Navigator 3.0.
Языки JavaScript и Java. JavaScript и Java в
чем-то очень похожи, а в чем-то существенно различаются, например
JavaScript не имеет статических типов Java и строгой проверки типов.
JavaScript поддерживает синтаксис выражений Java. JavaScript
является интерпретатором, в то время как Java - компилятором,
JavaScript поддерживает малое число типов данных: числовой, Boolean,
и строковый. JavaScript также поддерживает функции без
предварительных деклараций. Java - объектно-ориентированный язык
программирования, похожий на язык С++ и программирование на нем
значительно сложнее, чем на JavaScript. Существует как бы в двух
вариантах. В первом варианте это универсальный язык
программирования, основным достоинством которого является
независимость от платформы. Во втором варианте это язык написания
аплетов для WEB-серверов. Более корректно сравнивать JavaScript со
вторым вариантом языка Java. Наиболее существенные отличия
заключаются в следующем: JavaScript - является интерпретируемым;
используются встроенные, расширяемые объекты, но никаких классов или
наследований; вложен в HTML; типы данных не обьявляются; выполняется
динамическое связывание, ссылки проверяются во время выполнения,
Java - компилируемый в байт-коды, исполняющиеся на клиенте; аплеты
состоят из классов объектов с наследованием; аплеты не связаны с
HTML; типы данных должны быть объявлены; статические ссылки,
проверяемые во время компиляции. В то же время нельзя сказать, что
Java и JavaScript просто алгоритмические языки, в чем-то похожие
друг на друга, программы, напиманные на этих языках могут быть
связаны доcтаточно тесно. В рамках HTML-страниц существует
возможность взаимного влияния аплетов и JavaScript-программ.