В первой части книги, «Основы JavaScript», была расширена глава 8, описыва_ ющая функции; в нее включен материал, охватывающий замыкания и вложен_ ные функции. Информация о порядке создания собственных классов была до_ полнена и выделена в отдельную главу 9. Глава 10 – это еще одна новая глава, которая содержит сведения о пространствах имен, являющихся основой для раз_ работки модульного программного кода многократного использования. Наконец, глава 12 демонстрирует, как применять JavaScript при разработке сценариев на языке Java. Здесь показано, как встраивать интерпретатор JavaScript в прило_ жения на Java 6, как использовать JavaScript для создания Java_объектов и как вызывать методы этих объектов.
Во второй части книги, «Клиентский язык JavaScript», описываются прежняя (уровня 0) объектная модель документа и стандарт DOM консорциума W3C. По_ скольку в настоящее время модель DOM имеет универсальные реализации, отпа_ ла необходимость в двух отдельных главах, где в предыдущем издании описыва_ лись приемы работы с документами. Вторая часть книги подверглась самым су_ щественным изменениям; в нее включен следующий новый материал:
• Глава 19 «Cookies и механизм сохранения данных на стороне клиента» до_ полнена новой информацией о cookies и сведениями о методиках программи_ рования, применяемых на стороне клиента.
14 Предисловие
• Глава 20 «Работа с протоколом HTTP» описывает, как выполнять HTTP_за_ просы с помощью такого мощного инструмента, как объект XMLHttpRequest, который делает возможным создание Ajax_подобных веб_приложений.
• Глава 21 «JavaScript и XML» демонстрирует, как средствами JavaScript орга_ низовать создание, загрузку, синтаксический разбор, преобразование, вы_ борку, сериализацию и извлечение данных из XML_документов. Кроме того, рассматривается расширение языка JavaScript, получившее название E4X.
• Глава 22 «Работа с графикой на стороне клиента» описывает графические воз_ можности языка JavaScript. Здесь рассматриваются как простейшие способы создания анимированных изображений, так и достаточно сложные приемы работы с графикой с использованием ультрасовременного тега <canvas>. Кро_ ме того, здесь говорится о создании графики на стороне клиента средствами подключаемых SVG_, VML_, Flash_ и Java_модулей.
• Глава 23 «Сценарии с Java_апплетами и Flash_роликами» рассказывает о под_ ключаемых Flash_ и Java_модулях. В этой главе объясняется, как создавать Flash_ролики и Java_апплеты.
Часть III книги представляет собой справочник по прикладному интерфейсу ба_ зового языка JavaScript. Изменения в этой части по сравнению с предыдущим изданием весьма незначительные, что обусловлено стабильностью API. Если вы читали 4_е издание, вы найдете эту часть книги удивительно знакомой.
Существенные изменения коснулись организации справочного материала, опи_ сывающего прикладной интерфейс объектной модели документа (DOM API), ко_ торый ранее был выделен в самостоятельную часть отдельно от описания кли_ ентского языка JavaScript. Теперь же оставлена единственная часть со справоч_ ной информацией, относящейся к клиентскому языку JavaScript. Благодаря этому отпала необходимость читать описание объекта Document в одной части, а затем искать описание объекта HTMLDocument в другой. Справочный материал об интерфейсах модели DOM, которые так и не были достаточно полно реализова_ ны в броузерах, попросту убран. Так, интерфейс NodeIterator не поддерживается
в броузерах, поэтому его описание из этой книги исключено. Кроме того, акцент смещен от сложных формальных определений DOM_интерфейсов к JavaScript_ объектам, которые являются фактической реализацией этих интерфейсов. На_ пример, метод getComputedStyle() теперь описывается не как метод интерфейса AbstractView, а как метод объекта Window, что логичнее. Для JavaScript_програм_ мистов, создающих клиентские сценарии, нет серьезных оснований вникать
в особенности интерфейса AbstractView, поэтому его описание было убрано из справочника. Все эти изменения сделали справочную часть книги, посвящен_ ную клиентскому языку JavaScript, более простой и удобной.