Продукты, подобные Shockwave, эффективны, но предполагают высокие накладные расходы - не только в изучении, но и в требуемых ресурсах. Даже простые презентации Shockwave занимают примерно 100 Кбайт. Использовать Shockwave, к примеру, для генерации форм и проверки корректности ввода для простых страниц Web - все равно что стрелять из пушки по воробьям. Во втором же случае необходим лишь язык сценариев, который предусматривает небольшие накладные расходы и предлагает широкие функциональные возможности. Можно применять языки подготовки сценариев, такие как Python или Tcl/Tkl компании Digital Equipment, но они требуют подключаемых модулей (plug-ins), которые, в свою очередь, нуждаются в администрировании.

Лучшее решение для пользователей Navigator и Communicator компании Netscape Communications или Internet Explorer компании Microsoft - это язык написания сценариев JavaScript. Программы JavaScript представляют собой чистый текст, интерпретируемый во время выполнения, что упрощает создание и тестирование программ. Несмотря на это, JavaScript - богатый, сложный язык. (Он вовсе не является производной от Java, как часто думают. Языки имеют некоторые общие атрибуты, но их можно назвать не более чем дальними родственниками.)

Этот язык сценариев впервые появился в Navigator 2.0 под названием LiveScript. Впоследствии Netscape отказалась от такого названия, начав работать вместе с Sun Microsystems и попав под влияние Java. Изменяя названия на JavaScript, компания Netscape рассчитывала воспользоваться популярностью языка Java. Эта уловка позволила Sun и Netscape установить отраслевой стандарт, которому была вынуждена следовать даже Microsoft со своим JScript.

Поскольку JavaScript существует всего полтора года, он еще не стал догмой. Различные реализации Navigator и Internet Explorer поддерживают разные версии JavaScript. К примеру, Navigator 2.0 поддерживает JavaScript 1.0, в то время как Navigator 3.0 - версию 1.1, которая имеет лучшие возможности работы с массивами и сложными типами данных. Communicator рассчитан на JavaScript 1.2, в состав которого включены некоторые новые функции, такие как поддержка поиска строк с использованием регулярных выражений. Нужно отметить, что реализации компаний Netscape и Microsoft также различаются.

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

Основа основ JavaScript

Так что же собой в действительности представляет JavaScript? Говоря без затей, это упрощенный интерпретируемый язык с базовыми объектно-ориентированными функциями. JavaScript является упрощенным, поскольку не имеет жесткой архитектуры типов и семантики. Это объектно-ориентированный язык, потому что он работает с окнами, строкой состояния и другими элементами браузера и сетевого окружения как с объектами в иерархии, к которым можно обращаться по имени. Его называют интерпретируемым, так как, подобно многим версиям BASIC, его программы хранятся в виде простого текста, который система читает и исполняет в реальном времени.

Преимущество JavaScript как интерпретируемого языка, состоит в том, что корректность исходного текста может быть детерминированной. Некорректные действия, например запись в локальную память или связь с недопустимыми IP-адресами, возможно предотвратить. К недостаткам JavaScript следует отнести его низкую производительность, которая является следствием большого числа циклов обработки, требуемых для оперативного преобразования исходного текста в машинный код, что является непременным атрибутом интерпретируемых языков.

Код JavaScript составляется путем добавления выражений JavaScript в тело программы для страницы Web, написанной на HTML. Например, следующая программа создает кнопку, при нажатии на которую в строке состояния браузера появляется сообщение с текущей датой и временем.


   
   
   
   

   

Функция "statbar" принимает единственный аргумент - текст, заданный в вызове функции - и добавляет к нему текущую дату и время в локальном формате, после чего выводит их в строке состояния.

Эта программа демонстрирует несколько интересных аспектов JavaScript. Заключение функции в скобки комментария ("") позволяет браузерам, которые не поддерживают JavaScript, читать страницу без возникновения ошибок. Текст, обозначенный как комментарий, просто будет ими игнорироваться. Объектную ориентированность JavaScript можно увидеть в том, как используется функция "new" для создания экземпляра объекта ("DataObj"), представляющего текущие дату и время. Вы можете определить требуемое форматирование даты и времени, указав на новый объект и один из его методов - "toLocaleString". Этот метод, в сущности, представляет собой стандартную функцию, которая является частью определения конкретного типа объектов. Выражение "onClick" иллюстрирует зависимость JavaScript от событий. С такими объектами, как поля формы, могут быть связаны различные события, приводящие к исполнению разных процедур. Например, перемещение курсора ввода текста в другое поле, называемое "onBlur", вызвало бы изменения значений в других полях.

Защита JavaScript

Как и для любой другой технологии или языка, используемых в интрасетях, защита является первоочередной задачей. JavaScript, хотя его и нельзя назвать языком с самым высоким уровнем защиты, тем не менее адекватен большинству требований.

В нем не реализованы некоторые возможности, поскольку они косвенно делают защиту более уязвимой. В JavaScript, к примеру, вы не можете выполнять никакие операции с локальными файлами, поэтому программа не в состоянии изменять или получать доступ к пользовательским данным. Кроме того, этот язык не поддерживает сетевые примитивы. Он не может, например, напрямую открыть порт TCP/IP, а способен только обеспечить загрузку URL и формирование данных, передаваемых Web-серверам.

Реализации JavaScript просто блокируют определенные функции, чтобы ограничить количество сложных "трюков". Например, метод "submit" не позволит осуществить передачу URL в "mailto:". Именно поэтому сценарий не может создать пустую форму, переслать ее на любой сервер и обнародовать пользовательский адрес электронной почты. В браузере Navigator версии 3.0 и старше компании Netscape используется "искажение данных" - передовая, но недостаточно хорошо проверенная технология защиты. Она позволяет устанавливать уровни безопасности и управлять ими так, что программа на JavaScript может обратиться только к ограниченному кругу информации.

JavaScript - прекрасная технология. Она обладает достаточной элегантностью и мощностью, чтобы при небольших затратах, сделать ваши страницы интрасети интеллектуальнее и эффективнее.

Поделитесь материалом с коллегами и друзьями