Александр Силонов

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

Летом 2000 г. издательство "Питер" выпустило в своей популярной "зоологической" серии ("для профессионалов"), издаваемой по лицензии издательства O'Reilly, перевод книги Дж. Бранденбау, призванной дополнить типичные учебники по JavaScript и помочь разработчикам Web-сайтов освоить создание масштабных проектов с использованием клиентских сценариев.

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

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

Известно, какие неудобства доставляет разработчикам сложных DHTML-страниц различие в объектных моделях наиболее распространенных браузеров — Microsoft Internet Explorer и Netscape Navigator. Дж. Бранденбау уделяет особое внимание универсальной совместимости своих приложений, хотя по некоторым признакам можно понять, что ему лично ближе подход Netscape (кстати, судя по материалам телеконференций по JavaScript, среди российских разработчиков на этом языке преобладают сторонники объектной модели Internet Explorer).

Автор подчеркивает, что его книга не является учебником и предназначена для тех, кто уже освоил основы JavaScript (и, естественно, HTML). Тем не менее практически в каждой главе встречаются врезки с полезными методическими пояснениями и советами по использованию отдельных встроенных объектов, свойств и функций JavaScript. Чтобы применить на практике описанные в книге примеры, читателю, скорее всего, потребуется внести в большинство из них ряд изменений. Это относится и к строковым переменным, и к численным параметрам внутри функций, а, возможно, и к алгоритмам и структуре приложений (в конце каждой главы обычно даются советы по возможной модификации программ). Тем не менее все эти примеры имеют реальную основу и вполне работоспособны. В каждом приложении применен основательный системный подход, упрощающий дальнейшее расширение и изменение проекта.

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

Завершается книга приложениями, в которых описаны встроенные объекты, функции и свойства языка JavaScript; кратко — "для общего развития" — рассказывается о создании серверных Web-программ на языке Perl, а также дается перечень ресурсов Интернета, относящихся к теме создания Интернет-приложений.

Книги такого рода принято комплектовать компакт-дисками с листингами и примерами. Петербургские издатели в данном случае отказались от этого (очевидно, с целью сделать пособие более дешевым), разместив все необходимые электронные материалы на своем Web-сайте (http://www.piter.com), — разумный ход, если учесть, что читательская аудитория пособия заведомо имеет доступ в Интернет.

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