WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!

Pages:     || 2 | 3 | 4 | 5 |   ...   | 10 |
-- [ Страница 1 ] --

тм Ричард Вагнер, Вайк Исчерпывающее руководство об основном языке сценариев Своевременные для создания полнофункциональных Web-приложений Объектно-ориентированная Исследуется связь JavaScript с другими

Web-технологиями методология и ее воплощение в как со стороны клиента, так и со стороны сервера Фундаментальные основы языка JavaScript Операторы, управляющие структуры, функции и базовые объекты Исчерпывающий анализ объектной модели документов Объекты, используемые со стороны клиента и со стороны сервера Помещение на Web-страницы характерных для динамического HTML Устойчивая работа сценариев в браузерах Netscape Navigator и Microsoft Internet Explorer Сопровождающий Исходные тексты всех примеров, рассмотренных в книге Полезные инструментальные средства независимых разработчиков Многое другое PUBLISHING Вайк и др.

JAVASCRIPT. ЭНЦИКЛОПЕДИЯ ПОЛЬЗОВАТЕЛЯ дом 1 DiaSoft Киев • Москва • Санкт-Петербург 2001 тм JavaScript THIRD EDITION R. Allen Wyke, et SAMS A Division of Macmillan USA 201 West 103rd Street Indianapolis, Indiana UNLEASHED энцикло и ним дом DiaSoft в 1996 г.

Аллен и др.

тм Киев ООО. УДК 32.973.26-018. ВАЙК и др.

В14 JavaScript. Энциклопедия пользователя: ООО 480с.

ISBN 966-7992-00- Книга JavaScript. Энциклопедия пользователя является наиболее полным учебным и справочным руковод ством версиям языка включая JavaScript и JScript 5.O. На сегодняшний день JavaScript представляет собой самый распространенный язык для написания сценариев, обеспечивающих поддержку интерактивного содержимого Web-страниц. Книга охватывает широкий спектр вопросов, начиная с основ языка и заканчивая сложными вопросами практического применения технологий Web-дизайна. Подробно рассматриваются: взаимодействие JavaScript и HTML;

типы данных, операции, выражения и операторы;

основы объектно-ориентированной методологии и ее реализация в объекты со стороны клиента и сервера;

DHTML;

технологии написания устойчивого и надежного кода;

отладки кода. Особое вни мание в книге уделяется вопросам достижения безопасности Web-приложений.

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

Сопровождающий CD-ROM содержит исходные коды всех примеров, рассмотренных в книге, а также множество другой полезной информации.

JavaScript. Энциклопедия пользователя рассчитана на широкий круг разработчиков Web-приложений.

Учебное издание ББК 32.973.26-018. ВАЙК Аллен и др.

JAVASCRIPT. ЭНЦИКЛОПЕДИЯ ПОЛЬЗОВАТЕЛЯ Головний редактор Верстка Головний дизайнер Здано на 20.07.2001. до друку 20.09.2001. Формат 84x108/16.

офсетний. Тайме. Друк Умовн.друк.арк. 34,80. 34, Тираж 2000 прим. № 1-158.

ТОВ ДС", 04053, вул. Артема 25, а/я 100, тел./факс (044) 212-1254.

e-mail: books@diasoft.kiev.ua, http://www.diasoft.kiev.ua.

про суб'екта справи до Державного реестру i роз — ДК, №558 09.08.2001р.

Отпечатано в соответствии с качеством предоставленных диапозитивов на ОАО книжная фабрика» г. Белая ул. Леся Authorized translation from the English language edition published by Sams Copyright All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.

Russian language edition published by DiaSoft Publishing.

Copyright © Лицензия предоставлена издательством Sams Corporation, подразделение Macmillan Computer Publishing.

Все права зарезервированы, включая право на полное или частичное воспроизведение в какой бы то ни было форме.

ISBN 966-7992-00-4 © Перевод на русский язык. ООО "ТИД" ДС", ISBN 0-672-31763-Х (англ.) © Sams Corporation, © Оформление. ООО "ТИД" ДС", Гигиеническое заключение № от 04.02. Глава 2. Совместная работа Введение JavaScript и HTML Часть I. Знакомство Основы HTML с JavaScript Текущая ситуация Глава JavaScript и Основы HTML Структура HTML-документа World Web Основное об атрибутах Знакомство с JavaScript Внедрение JavaScript в HTML Десять заповедей которые должен знать каждый создатель сценариев 17 Атрибуты дескриптора

Готов держать пари, что вы обратили внимание на Действительно, новые стандар ты HTML и XHTML отказались от языкового атрибута в дескрипторе Таблица Поддержка клиентских технологий со стороны браузеров Netscape Navigator Microsoft Internet Explorer JavaScript/JScript 2.0+ 3.0+ Поддержка VBScript Отсутствует 3.0+ ржка Java 2.0+ (3.0+ для Mac) 3.0+ ActiveX 3.0+ (подключаемый модуль) 3.0+ модули Netscape 2.0+ 3.0+ Знакомство с JavaScript Часть I Клиентские расширения чие от область применения элементов По мере возрастания потребностей в активных Web- ActiveX ограничена только операционной средой страницах, простое расширение браузеров уже не мог- Microsoft Windows.

ло рассматриваться в качестве удобоваримого решения.

S2EE Некоторые расширения были подключаемыми модуля ми независимых разработчиков, которые увеличивали ' о а эффективность браузеров. Однако появилась потреб ность работать с выполняемым содержимым (executable 354 Ш content) в самом браузере. Для самой технологии не обя зательно привязываться к работе конкретного браузера, хотя он и поддерживает ее.

На сегодняшний день существуют три отдельных From:

To:

клиентских расширения. У них есть общие черты, рав flight Equipment:

но как и отличия:

• • Элементы управления ActiveX • Подключаемые модули Netscape Java-аплеты Если вы никогда не слышали о языке программирова ния Java, вас вполне могут назвать Митрофанушкой. О РИСУНОК 1.7. перемещает самолет вдоль экрана.

Java говорилось гораздо больше, чем о любом другом языке программирования. Хотелось бы рассказать о нем в контексте среды разработки Web-приложений.

Информация по Java находится на сайте компании Sun по адресу Java — независимый от платформы язык программи рования, разработанный компанией Sun Изрядно говорилось о возможности Java создавать со держимое, выполняемое на подавляющем большинстве платформ.

Внутри среды браузера Java-программы называются (applets). Связь с аплетом осуществляется че рез дескриптор в документе HTML, в резуль тате чего аплет может быть загружен на клиентский компьютер. Аплет поступает в браузер в виде последо вательности байт-кодов. Если Java браузером поддержи РИСУНОК 1.8. Интерактивная карта, реализованная на Java.

вается, байт-код интерпретируется и выполняется на клиентской машине. Ссылки на Java-аплеты Несмотря на то что функционирование элементов местимыми браузерами игнорируются. управления ActiveX допускается только в одной опера используются в нескольких сферах. По ционной системе, это не означает, что они недоступны мере развития языка применимость его расширяется. На для Web-приложений. Например, один и тот же элемент рис. 1.7 и 1.8 показаны два примера применения Java. управления ActiveX можно использовать в Web-прило жении и запускать его как в браузере с доступным Элементы управления ActiveX ActiveX, так и в Delphi или Visual Basic.

Ранее известные как OCX, элементы управления ActiveX Высокое жюри все еще сомневается, что станет ап стали ответной реакцией Microsoft на появление Java- стандартами — Java и ActiveX;

что будет столь аплетов. Они напоминают Java-аплеты, поскольку их же известно, как и среда разработки Web-приложений?

можно использовать в качестве средств обеспечения Но все имеет место уклон в сторону (по боль выполняемого Web-содержимого (см. рис. 1.9). В отли- шей части, из-за опасений инфицирования вирусами, JavaScript Wide Web Глава причиной которого могут стать управления Netscape. Для связи с модулями можно использовать ActiveX). И в том, и в другом случае есть свои преиму- JavaScript.

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

Pi ' ИХ Т. и Adobe Macintosh 4.0 Macintosh РИСУНОК 1.10. Просмотр файла при помощи подключаемого j модуля.

Клиентские языки сценариев Последние штрихи магии клиентской части завершают клиентские языки сценариев. На сегодняшний день ос 1.9. это — или элемент управления ActiveX? новным таким языком является JavaScript, тем не менее компания Microsoft выдвигает собственную альтерна РЕСУРС тиву — VBScript. Наибольшей популярностью VBScript Информация по может найдена в Internet пользуется в кругу разработчиков на Visual Basic. В кон центре Microsoft no адресу це главы можно найти краткое сравнение возможностей com.

JavaScript и VBScript.

Подключаемые модули Netscape Серверная часть Подключаемые модули (plug-ins) — это несколько дру- Серверная часть среды разработки Web-приложений гая технология, тем не менее представляющая собой состоит из собственно Web-сервера плюс расширения клиентское расширение Web-браузера. Подключаемые серверного программного обеспечения. Как будет пока модули существенно расширяют возможности браузера зано несколько позже, эти расширения могут принимать Netscape Navigator, связанные с поддержкой дополни- различные формы и работать с различными технологи тельных типов данных. В частности, подключаемые мо- ями. На рис. показаны взаимосвязи внутри сервер дули применяются для вывода на экран файлов различ- ной части.

ных (multipurpose Internet mail extension, Серверы многоцелевые почтовые расширения).

После запуска Netscape Navigator начинает поиск Web-сервер загружается после отправки со стороны кли модулей в папке program\plugins с целью ента запроса на требуемые HTML-документы, после их регистрации. Вызов подключаемых модулей выпол- возвращает их для просмотра. Программное обес няется по мере необходимости, когда обнаруживается печение сервера — это приложение, выполняющееся на файл машине с установленным протоколом TCP/IP. Среди После инсталляции подключаемые модули стано- наиболее популярных серверов находятся Netscape вятся добавочными модулями браузера и совершенно не Enterprise Server Microsoft Internet Information нуждаются во взаимодействии с пользователем для сво- Server (IIS) и Apache.

его запуска. В действительности они необходимы для Серверные расширения таких мультимедиа-данных, как звук, видео, графика.

На рис. показан подключаемый модуль, позволя- Собственно Web-сервер обеспечивает передачу статичес ющий просматривать файлы Adobe Acrobat в рамках ких клиенту при запросе, а также мно Знакомство с JavaScript Часть I жество других функций. С другой стороны, некоторые доступа со стороны сервера потребовалось бы создать серверные расширения обеспечивают возможности, не библиотеку DLL, а не отдельный выполняемый модуль реализованные в самом сервере. К таким возможностям ЕХЕ.

относятся CGI, серверные API, JavaScript и Java. Использование серверных API обладает своим пре имуществом — потоки оказываются гораздо более эф Клиенты фективными по сравнению с CGI Расширения требует, чтобы для каждого клиентского запроса выпол нялся отдельный экземпляр программы. Это приводит не только к большим издержкам, но также и к ограни чению максимального объема совместно используемых данных.

Недостаток использования серверного API ется в том, что полученное решение окажется специфи ческим для конкретного сервера. Созданная ISAPI DLL не будет работать с сервером Netscape. Разумеется, если работа связана постоянно лишь с одним сервером, упо мянутый негативный момент сводится на нет.

Серверный JavaScript Повышенное внимание к JavaScript связано с возмож ностями, реализуемыми языком на стороне клиента.

Однако, с не меньшим успехом JavaScript можно ис пользовать и в качестве серверного инструментального средства разработки сценариев. Как и следовало ожи РИСУНОК 1.11. Серверная часть.

дать, первой средой подобного рода является Netscape.

CGI Среда Netscape SSJS (Server-Side JavaScript) позво Интерфейс общего шлюза (CGJ, Common Gateway ляет использовать сценарии для построения Web-при представляет собой стандарт де-факто для ложений, управляемых Netscape-сервером. Кроме того, организации взаимодействия внешних программ с Web- существует несколько серверных расширений для язы серверами. Запуская и сценарии на ка JavaScript, которые обеспечивают дополнительные сервере, можно генерировать динамически создаваемое возможности генерации динамического HTML, взаимо содержимое и отображать его пользователю. действия с клиентом, доступа к внешним файлам на Типовой сценарий заключается в генерации запро- сервере и подключения к базам данных SQL (LiveWire).

са из формы HTML и отправка его серверу. Запрос за- Следует отметить, что в ответ Netscape, пускает или сценарий, размещенный в Microsoft поддерживает JScript в качестве специальном каталоге на сервере. обра- языка сценариев в рамках Active Server Pages.

батывает запрос и возвращает HTML-документ с резуль Java татами.

может разрабатываться на любом За последние месяцы Java существенно сдала свои по языке программирования: Java, C++, Visual Basic, PHP, зиции на серверной стороне. Компания Sun выпустила т.е. на том, что способно продуцировать код, могущий технологию под названием Java Server Pages (JSP), ко выполняться на Web-сервере. В мире Unix торая призвана быть конкурентом ASP и SSJS. В насто рии принято составлять на языках, подобных Perl или ящее время компании Sun и Netscape объявили о со языкам командных оболочек Unix. здании своего рода союза, именуемого iPlanet, цель которого заключается, помимо прочего, в интеграции Серверные API JSP и SSJS в единую технологически мощную среду.

Другой способ интеграции с сервером предполагает ис- Вы, наверное, слышали о (Java пользование его собственного интерфейса прикладного представляют собой небольшие компоненты, программирования (API, Application Programming более всего похожие на элементы управления ActiveX Interface). Два наиболее используемых API такого рода в среде ASP, которые могут активизироваться как гото - Netscape Server API (NSAPI) и Misrosoft Internet вые страницы либо использоваться для построения Server API API обеспечивают более тесную ин- страниц. Это позволяет разработчикам направить на теграцию с сервером. Например, в случае Windows для копленные знания Java (который намного проще в JavaScript Wide Web Глава ляются ли значения, введенные коррек чении, нежели С) на построение быстродействующих, тными, или, скажем, соответствуют ли они требуемому надежных, не зависящих от платформы компонентов, формату. Гораздо эффективнее провести проверку дан предназначенных для создания страниц.

ных в JavaScript, нежели передавать на сервер незавер шенные данные. Подобного рода подход эффективен не Что можно сделать при помощи только для пользователя, вводящего данных, но также и JavaScript?

для сервера. При этом появляется уверенность, что пе После краткого знакомства с технологиями разработки редаваемые на обработку серверу данные являются пол Web-приложений самое время посмотреть на роль кли- ностью корректными.

ентской части JavaScript в Web-приложениях.

Создание интерактивных форм Клиентские приложения JavaScript также используется для "оживления" форм JavaScript можно для разработки полного HTML. Одна из задач оживления связана с проверкой клиентского приложения. Хотя JavaScript и не столь все- достоверности данных. Другая предполагает реализацию объемлющий язык, каковым является Java, тем не менее, дополнительных возможностей, недоступных в HTML, он проявляет существенные возможности при работе с как то поддержка информации в строке состояния, от дескрипторами HTML и связанными с ними объектами. крытие второго окна браузера для отображения, скажем, Одно из наиболее известных приложений JavaScript, справочной информации и т.п.

h Idaho Design's ColorCenter Клиентские таблицы поиска показано на рис. Данное приложение применяет ся для выбора цветов элементов, видимых в браузере, с Помимо проверки достоверности данных, один из спо возможностью их предварительного просмотра в отдель- собов уменьшения потребности доступа к серверу зак ном фрейме. Создание аналогичного приложения с помо- лючается в использовании JavaScript для генерации и щью Java сопряжено с гораздо большими сложностями, поддержки клиентских таблиц поиска. Следует по связанными с необходимостью взаимодействия с мнить, что в таком случае данные должны встраиваться HTML. Очевидно, что в отдельных случаях JavaScript в сам HTML-документ, поэтому использование таблиц обеспечивает практически основу для разра- поиска должно сводится к небольшим информацион ботки приложений. ным базам данных, предназначенным только для чте ния.

Поддержка состояния В Web-среде, не поддерживающей концепцию состоя ния, JavaScript применяется для поддержки состояния при обмене между сервером и клиентом. Основной спо соб поддержки состояния связан с использованием на colors from below.

Visited Link above to set the corresponding боров cookies (информации, сохраняемой браузером на The current link arc shown the right. current shown стороне клиента). JavaScript обеспечивает как поиск, так и хранение cookie-наборов на клиентской части.

Более детальная информация по работе с cookies может isit texture and sites by them from the list above and Go, visiting a collect images by clicking the right (Mac users click and hold) and быть найдена в главе 30.

from the menu. Then on the text entry box to Add the image there in Windows). Finally, click Add to add the to your (This than it I) ColorCenter will remember your image and them whenever you Работа с элементами a beta version of Please encounter any or othe управления ActiveX и подключаемыми модулями По мере развития JavaScript, возрастают возможности работы с клиентскими расширениями, включая Java РИСУНОК 1.12. Design's ColorCenter.

элементы управления ActiveX и подключаемые Проверка допустимости данных модули Netscape. Несложно получить доступ к свой JavaScript обеспечивает для Web-разработчиков возмож- ствам объектов Java и ActiveX, равно как и запускать их ность выполнять проверку допустимости данных, вво- методы. Точно так же несложно определить, установ димых пользователем, без необходимости обращения к лен ли конкретный подключаемый модуль. Обладая серверу. Внутри кода JavaScript можно определить, яв- подобной возможностью, JavaScript становится своего Знакомство с JavaScript Часть I рода "клеем", соединяющим вместе HTML, и (JavaScript 1.4), Opera (JavaScript 1.1), Be's клиентские расширения. (экспериментальная версия).

Поддержка со стороны браузеров По сравнению с другими приложениями браузеры относительно небольшие части программного обеспече a. У ния, однако постепенно они превращаются в мощные Released Alp: la release. It приложения, воплощающие в себе все достижения Web for by testers so we технологий. Браузер — это окно в Web, поэтому каким you it j and find ax many bugs as бы потенциалом на обладал бы однозначно to a beta.

плохо, если браузер не обеспечивает поддержку этого fcugs.

языка. Ниже будут рассматриваться особенности под С держки JavaScript в доступных на сегодняшний день to US we can браузерах.

and. :,| code. see Поскольку JavaScript — язык интерпретируемый и внедряемый в HTML-документы, он всецело зависит от работы обеспечения браузера. Устарев- РИСУНОК 1.13. Navigator 5.

шие браузеры не знают, что делать с таким кодом, и попросту проигнорируют его.

JavaScript и JScript Netscape Как упоминалось ранее, JavaScript — не единственный К середине 90-х годов компания Netscape стала одной язык сценариев, доступный в Web. На этой арене мо из самых влиятельных в Web-индустрии. Она не толь- гут выступать еще два участника: JavaScript/JScript и ко открыла для рынка различные технологические но- VBScript. Хоть данные языки и отдалились от действи вовведения, но и объединилась с другими лидерами тельно конкурентно-способных языков (создается впе индустрии, такими как Sun, имея целью продвижение чатление, что на данный момент они просто дополня различных технологий в передние ряды Web. ют друг друга), все же нелишним будет сравнить все Поскольку разработчиком JavaScript является достоинства и недостатки JavaScript и VBScript. Ниже Netscape, вполне можно ожидать, что наилучшим в что есть VBScript, как он соотносится плане поддержки языка сценариев станет именно бра- с JavaScript, и для примера приводится простое VBScript узер Navigator. Navigator 2.0 был первым браузером, приложение.

поддерживающим JavaScript. Выпущенные позже версии ПРИМЕЧАНИЕ привнесли важные усовершенствования в сам язык. По Последние исследования показывают, что количество скольку Navigator был перемещен в Mozilla.org, т.е. в использующих VBScript, составляют незна зону Open Source (открытого исходного кода) Netscape, чительную часть в общем числе сайтов, поддерживаю можно быть уверенным, что разработчики со всего мира щих JavaScript.

в конечном итоге создадут практически идеальный бра узер. На рис. 1.13 показана бета-версия Mozilla (Netscape Что такое VBScript?

Navigator 5) с отображенной начальной страницей VBScript представляет собой язык сценариев для Web, разработанный компанией Microsoft, полностью парал Microsoft Internet Explorer лельный языку JavaScript. Все, что находится в основе Microsoft Internet Explorer 3.0 — первый браузер, создан- VBScript, существенно отличается от первоистоков ный другой компанией, включающий в себя поддерж- JavaScript. В то время как JavaScript создавался практи ку JavaScript. Более ранние версии Explorer не чески "с нуля", слабо основываясь на C++ и Java, обладают поддержкой JScript, т.е. реализации JavaScript VBScript принадлежит к языковому семейству Visual от компании Microsoft. Basic. Среди членов данного семейства: Visual Basic распространенный язык программирования для Другие браузеры Windows, Visual Basic for Applications — макроязык для На момент написания книги существовало лишь три Microsoft Office и других приложений. Если когда-либо браузера, поддерживающих JavaScript: Sun's 3.0 доводилось разрабатывать программное обеспечение на JavaScript u World Wide Web Глава Visual Basic, гораздо быстрее получится освоить VBScript.

Встроенный язык HTML Как и JavaScript, VBScript является языком написания Та же страница, но с использованием VBScript, выг сценариев, внедренным в HTML-файлы. Подобно лядит следующим образом:

JavaScript, VBScript использует дескриптор Самое интересное, что можно почерпнуть из приве

Объектная модель Одним из наиболее важных факторов при сравнении JavaScript и VBScript является идентичная базовая иерархия, хотя в других версиях могут суще- Более сложные типы данных ствовать и различия. Для Web-разработчика, использу- На первый взгляд может показаться, что возможности ющего оба языка, это — весьма приятный сюрприз, работы с типами данных в VBScript существенно огра поскольку гораздо проще использовать синтаксически ничены. Но это лишь кажется, и причина состоит в том, разные языки, нежели принципиально различные пара- что VBScript имеет только один тип данных — variant.

дигмы. Преобразование кода JavaScript в код VBScript При дальнейшем знакомстве с VBScript станет ясно, что или наоборот, как правило, носит построчный характер. поддержка типов данных здесь оказывается гораздо мощ В этих двух языках написания сценариев идентичны нее, нежели в JavaScript. Тип variant содержит инфор не только объектные модели, но также и способ работы с мацию о значении, с которым он работает, поэтому в HTML-объектами. Подобно JavaScript, VBScript может различных ситуациях имеется возможность запросить реагировать на события, генерируемые HTML-объекта- этот тип данных. Иными словами, если переменная ми. Например, в следующем примере после нажатия типа variant используется как строка (см. следующий кнопки Convert (листинг 1.2) все буквы текста, введен- пример), VBScript рассматривает ее (myVar) как стро ного в поле преобразуются в прописные. ковое значение.

myVar = + 1.2. Пример на JavaScript.

Совершенно аналогично, VBScript может рассматри вать ту же переменную как числовую:

myVar = { = Строки и числа рассматриваются как подтипы внут ри типа variant. В таблицу сведены подтипы VBScript.

Знакомство с JavaScript Часть I Таблица Подтипы VBScript-типа variant.

Подтип Описание String Строка переменной длины (максимальная длина — примерно 2 миллиарда символов).

Byte Целое число между 0 и 225.

Integer Целое число между и Long Целое число между -2147483648 и 2147483647.

Single Число с плавающей запятой одинарной точности со следующими пределами: от -3.402823Е38 до для отрицательных и от до для положительных значений.

Double Число с плавающей запятой двойной точности со следующими пределами: от до для отрицательных и от до — для положительных значений.

Date (Time) Число, представляющее дату в пределах от 1/1/100 до Boolean Логическое значение (True или False).

Empty Неинициализированная переменная. Значениями являются 0 для числовых и пустая строка строковых переменных.

Null Вариант содержит недопустимые данные (это не то же самое, что Empty).

Object Объект ActiveX.

Error Номер ошибки VBScript.

Sub VBScript обладает набором функций преобразования, alert которые дополняют встроенные методы parsetFIoat и определенные в JavaScript.

В JavaScript определен только один процедурный тип — метод (также называемый в котором Как и JavaScript, VBScript — слабо типизированный язык.

ключевое слово function используется вне зависимости от того, возвращается или нет значение в вызываемую Различные процедурные типы процедуру.

В VBScript определены два различных процедурных типа: подпрограммы и функции. Подпрограмма обозна Программирование в чается при помощи Sub и представляет собой процедуру, не возвращающую значение. С другой сто- Для поверхностного ознакомления с программировани роны, функция, обозначаемая парой ем в VBScript воспользуемся простейшим примером. В Function — это процедура, которая значение. листинге 1.4 выполняется умножение двух значений, Например, следующая подпрограмма присваивает тек- введенных пользователем, и отображение результата в стовому объекту строковый литерал "See Spot диалоговом окне предупреждения:

Run", но не возвращает значения в вызываемую проце Листинг 1.4. Пример программы на VBScript.

дуру.

= = f. value Рассмотрим пример VBScript-функции. Подпрограм totalVal = ма вызывает функцию getText(), которая воз End Sub вращает значение текстового объекта TextField:

 Second  
the

 First 

 Для целей сравнения двух языков в листинге 1. Second Number: 

the Wizard : to a server a Java applet, the will the to a sen two Резюме Глава посвящена исследованиям среды разработки Web second приложений и существующей методики объединения отдельных частей Web-технологий. JavaScript — одно из важнейших инструментальных средств в наборе Web разработчика. Было показано, что JavaScript взваливает на себя множество реальных функций, возникающих в течение цикла создания Web-приложений. JavaScript неуклонно становится стандартным языком Web-разра ботки. JavaScript — язык, а не инструмент, РИСУНОК 1.14. Результирующее окно сообщений.

он зависит от программного обеспечения браузера. С Листинг 1.5. JavaScript-версия кода, приведенного в момента захвата браузерами Microsoft Internet Explorer листинге 1.4.

и Netscape Navigator крепких позиций на рынке, надеж ность поддержки JavaScript существенно увеличилась.

Сейчас вы обладаете вполне достаточными знания tle> ми, чтобы успешно освоить материал следующей гла — вы, которая посвящена взаимодействию JavaScript и function { HTML.

Совместная работа JavaScript и HTML В ГЛАВЕ Основы HTML Внедрение JavaScript в HTML Создание JavaScript-кодов HTML дает возможность создавать замечательные Основы HTML статические Web-страницы. эти документы зачас тую и оказываются высокохудожественными, интерес- Несмотря на очевидную простоту разработки простых ными и во многом полезными, JavaScript пре- HTML-документов, включающих основные и про вратить статические Web-страницы в интерактивные и стые формы, преимущество применения HTML состо сделать их более чувствительными к пользовательским ит в возможности создания сложных документов на ос действиям и вводу. Расширение HTML-страниц с помо- нове более простых. Если задействовать более сложные щью JavaScript усиливает их возможности, а также су- дескрипторы и связанные с ними атрибуты, сложность щественно увеличивает гибкость кода. и степень применимости документов будет возрастать, JavaScript позволяет разработчику Web-сайта созда- а частота использования метода проб и ошибок вать более динамические Web-страницы за счет вклю- уменьшаться.

чения в существующую структуру HTML JavaScript Текущая ситуация сценариев. В этом случае разработчик может назначать кнопкам некоторые процессы, выполнять вычисления Стандарты HTML изменяются постоянно. Текущие ре для введенных в форму данных либо обеспечивать комендации (то бишь, стандарт) охватывают HTML определенные действия при попадании курсора мыши однако, следующее поколение HTML — это В на элемент HTML или объект Document. В общем, настоящее время XHTML 1.0 — предложенный вариант HTML становится значительно интереснее. стандарта, ожидающий принятия консорциумом Word JavaScript обладает рядом преимуществ перед фор- Wide Web Consortium (W3C) и основанный на рекомен мируемыми на сервере интерактивными документами дациях для HTML при помощи поскольку написанные на JavaScript XHTML — это HTML, существующий в виде при документы, вообще говоря, не зависят от обработки на ложения XML. После принятия XHTML в качестве сервере, а следовательно, быстрее реагируют на запро- стандарта, прикладные XML-программы получат воз сы пользователя и быстрее взаимодействуют с ним. можность обрабатывать данные в Для глубокого понимания работы JavaScript в Использование XML продемонстрирует, что XHTML мире HTML стоит сделать обзор основ HTML, пресле- также позволяет включать в документы и другие диалек дуя цель посмотреть, какое он имеет отношение к это- ты (типа В любом случае, развитие этих тех му языку сценариев. Обладая устойчивой базой знаний нологий породит новые элементы, равно как и усовер по HTML, разработчик сможет более полно овладеть шенствованные новые атрибуты элементов.

и другими интерактивными возможностями, а так же высокоуровневыми функциональными возмож Рассмотрение XHTML выходит за рамки этой книги.

ностями HTML.

Подробную информацию о нем можно получить на Web-сайте W3C по адресу Совместная работа JavaScript и HTML Глава дескрипторами. Исследуя приведенный ниже Отслеживая самые последние выпуски популярных пример, обратите внимание, что закрывающий дескрип браузеров, HTML-разработчик будет равняться на эти усовершенствования и применять их, как только они тор перед именем содержит символ /:

станут доступны широкой публике. К счастью, практи текст становится чески всегда расширения, включаемые в HTML 4.01/ Закрывающий дескриптор идентичен XHTML 1.0 и последние выпуски браузеров, при про за исключением того, что он содержит дополнительный смотре в более старых браузерах проблем не создают.

символ.

Однако всегда следует тестировать документ в старых бра Более сложные дескрипторы могут также иметь ат узерах, поскольку гарантия правильного восприятия но рибуты, которые определяют поведение дескриптора.

вых дескрипторов в таких браузерах лишней не окажется.

Если дескриптор располагает подобного рода атрибу Следует отметить, что существуют дескрипторы, там, они необходимы дескриптору для исполнения оп которые не являются частью стандарта или работают ределенных требований. Например,

он работает в Internet Explorer, но не в Расположение дескрипторов в документах иногда Navigator. Последний будет отображать просто текст имеет очень важное значение. Некоторые дескрипторы документа. С другой стороны, Navigator необходимо помещать внутрь других. Например, деск например, дескрипторы <1ауег> и , невоспри риптор должен находиться внутри Не нимаемые Internet Explorer.

которые дескрипторы могут включать в себя другие, но Приведенные примеры иллюстрируют важность на это не является обязательным условием (примером мо писания четко определенного и сегментированного до жет послужить дескриптор кумента и обязательного учета различий браузеров при Что касаемо комментариев, они суть ни что иное создании Web-страниц.

как примечания разработчика по поводу собственно Основы HTML го документа, которые браузером не отображаются.

HTML-комментарии начинаются с символа . Ниже приводится пример HTML прежде чем приступать к созданию каких-либо комментария:

сценариев, необходимо получить основные знания о структуре мента и его дескрипторах. Знание вот вам и комментарий основ HTML существенно упростит создание Web-стра Структура ниц. Web-страница состоит из текста страницы, деск рипторов, и может иногда содержать комментариев.

Структура HTML-документа зачастую очень важна. При Текст — это понятно и без пояснений. Разработчик неправильном размещении дескрипторов увеличивает пишет текст, который появляется на Web-странице. ся вероятность возникновения нежелательных и неожи Часть процесса дизайна Web-страниц, которая требует данных эффектов. Базовый HTML-документ показан на подробных пояснений, — это использование деск- рис. 2.1. Документ всегда должен начинаться с рипторов, всегда начинающихся с символа < и заверша- и завершаться , что несложно заметить в лис ющихся символом >. Дескрипторы определяют поведение тинге Два основных дескриптора внутри упомяну Web-страницы, задают внешний вид текста и позволяют тых — и . Внутри них можно размещать создавать сложные документы для Web-браузера. остальные дескрипторы.

Дескриптором может быть одиночный маркер, на пример,


— для горизонтальной линии, или — для перевода строки;

подобного рода дескрипторы иног да называют пустыми. Пустые дескрипторы не обяза тельно каким-то образом форматируют окружающий Heading of Basic Document текст, хотя и способны корректировать разметку и ди- РИСУНОК 2.1.

зайн Базовый Two HTML С другой стороны,

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

Атрибуты дескриптора нимают JavaScriptl.0. Кроме того, текущая версия браузера Opera, кажется, вообще игнорирует этот ат language рибут, поскольку он был в свое время отвергнут.

В самой последней версии языков HTML и XHTML атрибут language отвергнут. Традиционно он использо- Используя атрибут language, можно определить вался для определения имени языка и версии JavaScript, множество наборов функций JavaScript. Браузеры, под которые использовались для кода, расположенного держивающие JavaScript смогут воспользоваться пре между парой Знакомство с Часть I пени это правильно.

А сейчас — вариант с размещением сценария во Атрибут language был первым атрибутом, который не внешнем файле:

только определял язык в дескрипторе напри мер, javascript или vbscript, но также и версию, скажем, function called by Push Test page of onLoad JavaScript call Test page of function called from Push Button Пользовательские действия

Пользователи не смогут получить полное впечатление от На рис. 2.4 показаны результаты вызова функции.

Web-страницы, но, по крайней мере, в браузере не по явится нежелательный текст. Формат использования этих комментариев таков:

© Листинг 2.6 демонстрирует способ сокрытия кода JavaScript от старых браузеров. Обратите внимание, что в этом листинге применяются два следующих друг за другом оператора HTML-комментариев, а строки кода на JavaScript размещаются внутри них.

Листинг 2.6. Сокрытие от старых браузеров.

1 тм Ричард Вагнер, Вайк Исчерпывающее руководство об основном языке сценариев Своевременные для создания полнофункциональных Web-приложений Объектно-ориентированная Исследуется связь JavaScript с ния HTML доступными для пользователей, необходимо всегда помнить, что старые браузеры не способны под держивать JavaScript-код. Если окружить дескриптора- Здесь находится страницы ми комментария HTML все операторы внутри пары Знакомство с JavaScript Открывающий дескриптор мору код на Оператор как-будто бы говорит: "За писать такой-то текст в моем документе". Несмотря на то что операторы HTML не чувствитель ны к регистру (хотя в предложенных рекомендациях XHTML подобное требование присутствует), операто ры JavaScript — чувствительны. Не забывайте прове Листинг 2.9. Помещение рять регистр символов кода, чтобы гарантированно не непосредственно в обработчик событий onclick.

иметь проблем из-за столь досадного, но все же рас пространенного недоразумения.

Page with Приступая к написанию кода, памятуйте о следую </head> щем:</p><p> • Повторное кода <input • Удобочитаемость • Простота внесения изменений </body> Дескрипторы JavaScript можно использовать как в разделе <body>, так и в разделе <head> документа. Как Листинг 2.9 демонстрирует возможность помещения упоминалось ранее, помещение дескриптора , ми определения типа браузера перед отправкой ему JavaScript интерпретирует каждую строку кода в ко страницы?</p><p> манды, которым затем и следует. Это очень похоже на • Имеется ли общая тенденция отказа от браузеров, выполнение определенных инструкций для приготовле которые не планируется поддерживать?</p><p> ния, скажем, жаркого. Вы читаете каждое указание и выполняете его, приближаясь к заветному результату (то Помощь со стороны сервера бишь, жаркому). Точно так же и JavaScript выполняет все в строгом порядке. Если можно определить, какие браузеры запрашивают Пребывая на пути создания чудесного ужина, вы страницу перед ее отправкой, то это предоставляет оп остановитесь, ожидая, скажем, разогрева плиты. Подоб- ределенные преимущества при создании клиентских ного рода остановы воспроизводит и JavaScript, если JavaScript-программ и сценариев. Опять-таки, это позво Создание первого сценария Глава лит избежать ошибок на стороне клиента, которые свя- Все, что потребуется определить, так это ограниче ния, накладываемые на будущих пользователей. Акку заны с отправкой неподдерживаемого кода.</p><p> Правда, потребуется создать несколько версий сце- ратно продумайте свое решение. Оставляя кого-то за нариев, но время загрузки браузера существенно умень- бортом, вы тем самым снижаете потенциальный трафик.</p><p> Если принято решение пользователей с не-JavaScript шится, а вероятность появления ошибки — снизится.</p><p> необходимость определения типа пользова- браузерами не поддерживать, задача упрощается — их не придется обеспечивать дополнительным HTML-ко тельского браузера и, соответственно, передачи лишних строк кода. Подобного рода функционирование позво- дом для просмотра страниц. Если же вам дорог любой лит плавно управлять известными неподдерживаемыми пользователь (в том числе и тот, кто по ряду причин работает в He-JavaScript-браузере), постарайтесь предо браузерами.</p><p> ставить им настолько большую функциональность, на Постепенные сбои сколько это в ваших возможностях.</p><p> Другой вопрос заключается в том, насколь последова следует учитывать не тельно планируется поддерживать поддерживающие JavaScript?</p><p> Сюда относятся не только браузеры, вообще не под держивающие JavaScript, но и браузеры с отключенной Самое время посмотреть, как же поддерживать просмотр поддержкой JavaScript. страниц в браузерах с отключенной или вообще отсут ствующей поддержкой JavaScript. Конечно, можно вос ПРЕДУПРЕЖДЕНИЕ пользоваться функциональностью серверной стороны, В окне настройки предпочтений браузера обработка о которой упоминалось ранее. Однако, она не поддер кода JavaScript может отключена. На рис. 4. живает браузеры с отключенной поддержкой JavaScript.</p><p> показано окно настроек Navigator 4.7 и соответству Здесь на выручку может прийти дескриптор <noscript>.</p><p> ющий флажок. Об этом очень важно помнить, по Дескриптор позволяет определить HTML скольку придется учитывать и отключенную поддерж ку Для простоты воспринимайте браузер с код, который будет отображаться на экране в случае, отключенным JavaScript как браузер, вообще не под если JavaScript отключен или не поддерживается. Эта держивающий JavaScript.</p><p> часть кода всегда следует после любого раздела <script>.</p><p> Листинг 4.1 демонстрирует один из примеров исполь зования этого дескриптора, а рис. 4.2 — результат ото бражения примера в Navigator 4.7 при отключенном JavaScript.</p><p> •.</p><p> What is returned?</p><p> JavaScript is tamed РИСУНОК Отключение поддержки JavaScript в делом было бы неплохо для себя выяснить, какое место хочется занять в Internet-пространстве. Вы 1 i планируете создать сайт, который будет доступен всем РИСУНОК 4.2. Визуализация дескриптора людям на планете? Может быть, вы создаете интрасеть для компании и знаете, какие браузеры будут у пользо- Листинг 4.1. Использование дескриптора <noscript>.</p> <div class="po5"></div> <div class='stranici1'><b class='temiser'>Pages:</b>     |<div class='kr'><a class="kn1" href="/1/40984-1-tm-richard-vagner-vayk-ischerpivayuschee-rukovodstvo-osnovnom-yazike-scenariev-svoevremennie-dlya-sozdaniya.php" title=""> 1 </a></div>|<a class="kn1" href="/1/40984-2-tm-richard-vagner-vayk-ischerpivayuschee-rukovodstvo-osnovnom-yazike-scenariev-svoevremennie-dlya-sozdaniya.php" title=""> 2 </a>|<a class="kn1" href="/1/40984-3-tm-richard-vagner-vayk-ischerpivayuschee-rukovodstvo-osnovnom-yazike-scenariev-svoevremennie-dlya-sozdaniya.php" title=""> 3 </a>|<a class="kn1" href="/1/40984-4-tm-richard-vagner-vayk-ischerpivayuschee-rukovodstvo-osnovnom-yazike-scenariev-svoevremennie-dlya-sozdaniya.php" title=""> 4 </a>|<a class="kn1" href="/1/40984-5-tm-richard-vagner-vayk-ischerpivayuschee-rukovodstvo-osnovnom-yazike-scenariev-svoevremennie-dlya-sozdaniya.php" title=""> 5 </a>|   ...   |<a class="kn1" href="/1/40984-10-tm-richard-vagner-vayk-ischerpivayuschee-rukovodstvo-osnovnom-yazike-scenariev-svoevremennie-dlya-sozdaniya.php" title=""> 10 </a>|</div> <div class="separator2"></div> <div class="po122"> <img class="doc" src="/images/doc.gif" border="0" alt="" ><a class="menusil" href="/1/" title=""><b class="jir">Книги, научные публикации</b></a> </div> <div class="niz2"> <br><br> <noindex> <center> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- dislib-kvadrat (niz) --> <ins class="adsbygoogle" style="display:inline-block;width:336px;height:280px" data-ad-client="ca-pub-9894471784993021" data-ad-slot="3110193131"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </center> </noindex> <br> <div class="naverh"><A href="#verh" >наверх</a><img src="/images/s.gif" hspace="3" width="5" height="11" border="0" alt="" align="top" vspace="3" ></div> </td></tr></table> <table width="100%" cellspacing="0" cellpadding="0" border=0> <tr> <td bgcolor="#CCCCFF" height="1"> </td> </tr> <tr> <td class="menu-niz"> <center> <table cellspacing="0" cellpadding="0" border=0> <tr> <td class="menu-niz1"> |  • <a href="/" title="На главную">Главная</a>  |  • <a href="/admin/contact-kontakti-dissertatsii.php" title="Контакты">Контакты</a> |  </td> </tr> </table> </center> </td> </tr> <tr><td class="line1"></td> </tr> </table></td><td class="line"><img class="lin" src="/images/spaser1.gif" border="0" alt=""></td></tr></table> </td><td valign="top"> <table width="5" border="0" cellspacing="0" cellpadding="0"> <tr> <td></td></tr></table></td></tr></table> </td><td class="site2"></td></tr><tr><td colspan="3"> <noindex> <script type='text/javascript' src='http://recreativ.ru/rcode.97536708c5.js'></script> <script type='text/javascript' src='http://recreativ.ru/rcode.88aa634d1b.js'></script> <script type='text/javascript' src='http://recreativ.ru/rcode.30746632cd.js'></script> </noindex> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td valign="top" class="cap1"> <font color="#808080">© 2011 www.dissers.ru - «Бесплатная электронная библиотека»<br><br> <noindex> Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам. <br> Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, <a href="/admin/contacts.php" title="">напишите нам</a>, мы в течении 1-2 рабочих дней удалим его. </noindex> </font> </div> </td> </tr> </table> <noindex> <!-- Yandex.Metrika counter --> <script src="//mc.yandex.ru/metrika/watch.js" type="text/javascript"></script> <script type="text/javascript"> try { var yaCounter78166 = new Ya.Metrika({id:78166,type:1}); } catch(e) { } </script> <noscript><div><img src="//mc.yandex.ru/watch/78166?cnt-class=1" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> </noindex></td></tr></table> </body> </html>

нельзя рассматривать как документ, пустой дескриптор. Он используется для указания на то, показанный в что текст, следующий после этого дескриптора, должен листинге помещаться в ячейку таблицы. Дескрипторы такого типа наличия закрывающего дескриптора, уве is a HTML домляющего о завершении их действия. Эти дескрипто ры называются поскольку всегда содержат информацию (обычно текст) между открывающим и зак Знакомство с JavaScript Часть I Листинг 2.1. Базовая HTML-страница.

Основное об атрибутах Как упоминалось ранее, многие дескрипторы имеют HTML атрибуты. Атрибуты используются для определения .

Атрибут type используется для определения языка, на