Руководства, Инструкции, Бланки

Javascript Подробное Руководство Definitive Guide Скачать img-1

Javascript Подробное Руководство Definitive Guide Скачать

Рейтинг: 4.7/5.0 (1762 проголосовавших)

Категория: Руководства

Описание

Javascript подробное руководство definitive guide скачать

/ JavaScript. Подробное руководство

JavaScript. Подробное руководство. – Пер. с англ. – СПб: Символ Плюс, 2008. – 992 с. ил.

ISBN 10: 5 93286 103 7 ISBN 13: 978 5 93286 103 5

Пятое издание бестселлера «JavaScript. Подробное руководство» полностью обновлено. Рассматриваются взаимодействие с протоколом HTTP и примене ние технологии Ajax, обработка XML документов, создание графики на сторо не клиента с помощью тега <canvas>, пространства имен в JavaScript, необхо димые для разработки сложных программ, классы, замыкания, Flash и встра ивание сценариев JavaScript в Java приложения.

Часть I знакомит с основами JavaScript. В части II описывается среда разра ботки сценариев, предоставляемая веб броузерами. Многочисленные примеры демонстрируют, как генерировать оглавление HTML документа, отображать анимированные изображения DHTML, автоматизировать проверку правиль ности заполнения форм, создавать всплывающие подсказки с использованием Ajax, как применять XPath и XSLT для обработки XML документов, загру женных с помощью Ajax. Часть III – обширный справочник по базовому Java Script (классы, объекты, конструкторы, методы, функции, свойства и кон станты, определенные в JavaScript 1.5 и ECMAScript v3). Часть IV – справоч ник по клиентскому JavaScript (API веб броузеров, стандарт DOM API Level 2 и недавно появившиеся стандарты: объект XMLHttpRequest и тег <canvas>).

ISBN 10: 5 93286 103 7

ISBN 13: 978 5 93286 103 5

ISBN 0 596 10199 6 (англ)

© Издательство Символ Плюс, 2008

Authorized translation of the English edition © 2006 O’Reilly Media, Inc. This trans lation is published and sold by permission of O’Reilly Media, Inc. the owner of all rights to publish and sell the same.

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

Издательство «Символ Плюс». 199034, Санкт Петербург, 16 линия, 7, тел. (812) 324 5353, www.symbol.ru. Лицензия ЛП N 000054 от 25.12.98. Налоговая льгота – общероссийский классификатор продукции

ОК 005 93, том 2; 953000 – книги и брошюры.

Подписано в печать 14.02.2008. Формат 70? 100 1 /16. Печать офсетная. Объем 62 печ. л. Тираж 2000 экз. Заказ N

Отпечатано с готовых диапозитивов в ГУП «Типография «Наука» 199034, Санкт Петербург, 9 линия, 12.

Эта книга посвящается всем, кто учит жить мирно и противостоит насилию.

4.1. Типизация переменных. 674.2. Объявление переменных. 684.3. Область видимости переменной. 694.4. Элементарные и ссылочные типы. 714.5. Сборка мусора. 734.6. Переменные как свойства. 744.7. Еще об области видимости переменных. 75

5. Выражения и операторы. 77

5.1. Выражения. 775.2. Обзор операторов. 785.3. Арифметические операторы. 815.4. Операторы равенства. 835.5. Операторы отношения. 865.6. Строковые операторы. 885.7. Логические операторы. 895.8. Поразрядные операторы. 915.9. Операторы присваивания. 925.10. Прочие операторы. 94

6.1. Инструкции выражения. 996.2. Составные инструкции. 1006.3. Инструкция if. 1016.4. Инструкция else if. 1026.5. Инструкция switch. 1036.6. Инструкция while. 1056.7. Цикл do/while. 1066.8. Инструкция for. 1076.9. Инструкция for/in. 1086.10. Метки. 1096.11. Инструкция break. 1106.12. Инструкция continue. 1116.13. Инструкция var. 1126.14. Инструкция function. 1136.15. Инструкция return. 1146.16. Инструкция throw. 1156.17. Инструкция try/catch/finally. 1166.18. Инструкция with. 1186.19. Пустая инструкция. 119

6.20. Итоговая таблица JavaScript инструкций. 119

7. Объекты и массивы. 122

7.1. Создание объектов. 1227.2. Свойства объектов. 1237.3. Объекты как ассоциативные массивы. 1257.4. Свойства и методы универсального класса Object. 1277.5. Массивы. 1297.6. Чтение и запись элементов массива. 1307.7. Методы массивов. 1337.8. Объекты, подобные массивам. 138

8.1. Определение и вызов функций. 1398.2. Аргументы функций. 1438.3. Функции как данные. 1488.4. Функции как методы. 1508.5. Функция конструктор. 1528.6. Свойства и методы функций. 1528.7. Практические примеры функций. 1548.8. Область видимости функций и замыкания. 1568.9. Конструктор Function(). 163

9. Классы, конструкторы и прототипы. 165

9.1. Конструкторы. 1659.2. Прототипы и наследование. 1669.3. Объектно ориентированный язык JavaScript. 1729.4. Общие методы класса Object. 1789.5. Надклассы и подклассы. 1829.6. Расширение без наследования. 1869.7. Определение типа объекта. 1899.8. Пример: вспомогательный метод defineClass(). 194

10. Модули и пространства имен. 198

10.1. Создание модулей и пространств имен. 19910.2. Импорт символов из пространств имен. 20410.3. Модуль со вспомогательными функциями. 208

11. Шаблоны и регулярные выражения. 214

11.1. Определение регулярных выражений. 21411.2. Методы класса String для поиска по шаблону. 22311.3. Объект RegExp. 226

12. Разработка сценариев для Java приложений. 229

12.1. Встраивание JavaScript. 22912.2. Взаимодействие с Java кодом. 237

Часть II. Клиентский JavaScript. 249

13. JavaScript в веб броузерах. 251

13.1. Среда веб броузера. 25213.2. Встраивание JavaScript кода в HTML документы. 25813.3. Обработчики событий в HTML. 26413.4. JavaScript в URL. 26613.5. Исполнение JavaScript программ. 26813.6. Совместимость на стороне клиента. 27313.7. Доступность. 27913.8. Безопасность в JavaScript. 28013.9. Другие реализации JavaScript во Всемирной паутине. 285

14. Работа с окнами броузера. 287

14.1. Таймеры. 28814.2. Объекты Location и History. 28914.3. Объекты Window, Screen и Navigator. 29114.4. Методы управления окнами. 29714.5. Простые диалоговые окна. 30214.6. Строка состояния. 30314.7. Обработка ошибок. 30414.8. Работа с несколькими окнами и фреймами. 30614.9. Пример: панель навигации во фрейме. 311

15. Работа с документами. 314

15.1. Динамическое содержимое документа. 31515.2. Свойства объекта Document. 317

15.3. Ранняя упрощенная модель DOM: коллекции

объектов документа. 31915.4. Обзор объектной модели W3C DOM. 32315.5. Обход документа. 33415.6. Поиск элементов в документе. 33515.7. Модификация документа. 33915.8. Добавление содержимого в документ. 34315.9. Пример: динамическое создание оглавления. 35115.10. Получение выделенного текста. 35615.11. IE 4 DOM. 357

16. CSS и DHTML. 360

16.1. Обзор CSS. 36116.2. CSS для DHTML. 37016.3. Использование стилей в сценариях. 38616.4. Вычисляемые стили. 39516.5. CSS классы. 39616.6. Таблицы стилей. 397

17. События и обработка событий. 403

17.1. Базовая обработка событий. 40417.2. Развитые средства обработки событий в модели DOM Level 2. 41417.3. Модель обработки событий Internet Explorer. 42517.4. События мыши. 43517.5. События клавиатуры. 44017.6. Событие onload. 44917.7. Искусственные события. 450

18. Формы и элементы форм. 453

18.1. Объект Form. 45418.2. Определение элементов формы. 45518.3. Сценарии и элементы формы. 45918.4. Пример верификации формы. 467

19. Cookies и механизм сохранения данных на стороне клиента. 472

19.1. Обзор cookies. 47219.2. Сохранение cookie. 47519.3. Чтение cookies. 47619.4. Пример работы с cookie. 47719.5. Альтернативы cookies. 48119.6. Хранимые данные и безопасность. 493

20. Работа с протоколом HTTP. 494

20.1. Использование объекта XMLHttpRequest. 49520.2. Примеры и утилиты с объектом XMLHttpRequest. 50220.3. Ajax и динамические сценарии. 50920.4. Взаимодействие с протоколом HTTP с помощью тега <script>. 516

21. JavaScript и XML. 518

21.1. Получение XML документов. 51821.2. Манипулирование XML данными cредствами DOM API. 52421.3. Преобразование XML документа с помощью XSLT. 528

21.4. Выполнение запросов к XML документу с помощью

XPath выражений. 531

Другие статьи

Скачать JavaScript

JavaScript. Подробное руководство, 6-е издание ЧИТАТЬ ONLINE БУМАЖНАЯ ВЕРСИЯ КНИГИ

Шестое издание бестселлера "Jаvascript. Подробное руководство" полностью пересмотрено и дополнено сведениями о Jаvascript в соответствии с современным положением дел в разработке приложений для Web 2.0.
Эта книга – одновременно и руководство программиста с большим числом практических примеров, и полноценный справочник по базовому языку Jаvascript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.
Издание охватывает стандарты ECMAScript 5 и HTML5. Многие главы переписаны заново, другие дополнены новой информацией, появились и новые главы с описанием библиотеки jQuery и поддержки Jаvascript на стороне сервера.

Часть I знакомит с основами Jаvascript.

В части II описывается среда разработки сценариев, предоставляемая веб-броузерами.
Основное внимание уделяется разработке сценариев с применением методики ненавязчивого Jаvascript и модели DOM.

Часть III – обширный справочник по базовому языку Jаvascript, включающий описания всех классов, объектов, конструкторов, методов, функций, свойств и констант, определенных в Jаvascript 1.8, V8 3.0 и ECMAScript 5.

Часть IV – справочник по клиентскому Jаvascript.
Здесь описываются API веб-броузеров, стандарт DOM API Level 3 и недавно вошедшие в стандарт HTML5 технологии WebSockets и WebWorkers, объекты localStorage и sessionStorage, а также теги "audio" и "video".

Популярные книги раздела

Javascript подробное руководство definitive guide скачать

JavaScript. Подробное руководство
  • Оригинальное название: JavaScript: The Definitive Guide
  • Пятое издание
  • Автор: Дэвид Флэнаган
  • Издательство: Символ-Плюс
  • Год: 2008
  • Язык: Русский
  • Страниц: 992
  • Формат: pdf
  • Размер: 6 Мб

Описание книги JavaScript. Подробное руководство.
Пятое издание бестселлера "JavaScript. Подробное руководство" полностью обновлено. Рассматриваются взаимодействие с протоколом HTTP и применение технологии Ajax, обработка XML-документов, создание графики на стороне клиента с помощью тега "canvas", пространства имен в JavaScript, необходимые для разработки сложных программ, классы, замыкания, Flash и встраивание сценариев JavaScript в Java-приложения.

Дуглас Крокфорд пишет: "Практически, любая книга по JavaScript — это воплощение Зла. В них куча ошибок, бестолковых примеров и плохих советов. Важные особенности языка либо плохо рассмотрены, либо не затрагиваются вовсе. Я прошёлся через десятки книг по JavaScript и могу рекомендовать только одну из них: JavaScript: The Definitive Guide (5th Edition) by David Flanagan."

Часть I знакомит с основами JavaScript. В части II описывается среда разработки сценариев, предоставляемая веб-броузерами. Многочисленные примеры демонстрируют, как генерировать оглавление HTML-документа, отображать анимированные изображения DHTML, автоматизировать проверку правильности заполнения форм, создавать всплывающие подсказки с использованием Ajax, как применять XPath и XSLT для обработки XML-документов, загруженных с помощью Ajax. Часть III - обширный справочник по базовому JavaScript (классы, объекты, конструкторы, методы, функции, свойства и константы, определенные в JavaScript 1.5 и ECMAScript v3). Часть IV - справочник по клиентскому JavaScript (API веб-броузеров, стандарт DOM API Level 2 и недавно появившиеся стандарты: объект XMLHttpRequest и тег "canvas").

Купить книгу JavaScript. Подробное руководство :
Ozon

Флэнаган «JavaScript

JavaScript. Подробное руководство, 6-е издание

Данная книга – это уже шестое издание нашумевшего бестселлера «JavaScript. Подробное руководство», в которое вошли новые сведения о JavaScript в соответствии с современным положением дел в сфере разработки приложений для web 2.0. Книгу можно назвать и справочником по базовому языку JavaScript и руководством программиста с большим числом практических примеров.

Классы и модули

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

Классы в языке JavaScript основаны на использовании механизма наследования прототипов. Если два объекта наследуют свойства от одного и того же объекта-прототипа, говорят, что они принадлежат одному классу. С прототипами и наследованием мы познакомились в разделах 6.1.3 и 6.2.2. Сведения из этих разделов вам обязательно потребуются для понимания того, о чем рассказывается в этой главе. В этой главе прототипы будут рассматриваться в разделе 9.1.

Если два объекта наследуют один и тот же прототип, обычно (но не обязательно) это означает, что они были созданы и инициализированы с помощью одного конструктора. С конструкторами мы познакомились в разделах 4.6, 6.1.2 и 8.2.3. Дополнительные сведения о них в этой главе приводятся в разделе 9.2.

Те, кто знаком со строго типизированными объектно-ориентированными языками программирования, такими как Java или C++, могут заметить, что классы в языке JavaScript совершенно не похожи на классы в этих языках. Конечно, есть некоторые синтаксические сходства, и имеется возможность имитировать многие особенности «классических» классов в JavaScript. Но лучше будет с самого начала понять, что классы и механизм наследования на основе прототипов в языке JavaScript существенно отличаются от классов и механизма наследования на основе классов в языке Java и подобных ему. В разделе 9.3 демонстрируются приемы имитации классических классов на языке JavaScript.

Еще одной важной особенностью классов в языке JavaScript является возможность динамического расширения. Эта особенность описывается в разделе 9.4. Классы можно также интерпретировать как типы данных, и в разделе 9.5 будет представлено несколько способов определения класса объекта. В этом разделе вы также познакомитесь с философией программирования, известной как «утиная типизация» («duck-typing»), которая во главу угла ставит не тип объекта, а его возможности.

После знакомства со всеми этими основами объектно-ориентированного программирования в JavaScript мы перейдем в этой же главе к изучению более практического материала. В разделе 9.6 будут представлены два примера непростых классов и продемонстрировано несколько практических объектно-ориентированных приемов расширения этих классов. В разделе 9.7 будет показано (на множестве примеров), как расширять или наследовать другие классы и как создавать иерархии классов в языке JavaScript. В разделе 9.8 рассматриваются дополнительные приемы работы с классами с использованием новых возможностей, появившихся в ECMAScript 5.

Определение классов – это один из способов создания модульного программного кода многократного использования. В последнем разделе этой главы мы в общих чертах поговорим о модулях в языке JavaScript.

Литералы RegExp и создание объектов

Литералы простых типов, таких как строки и числа, интерпретируются как одни и те же значения, где бы они ни встретились в программе. Литералы объектов (или инициализаторы), такие как <> и [], каждый раз создают новые объекты. Если поместить инструкцию var а = [] в тело цикла, например, в каждой итерации цикла будет создаваться новый пустой массив.

Литералы регулярных выражений – особый случай. Спецификация ЕСМА-Script 3 утверждает, что литерал RegExp преобразуется в объект RegExp в ходе синтаксического анализа программного кода и каждый раз, когда интерпретатор встречает литерал RegExp, он возвращает один и тот же объект. Спецификация ECMAScript 5 изменила это положение вещей и требует, чтобы всякий раз, когда в программе встречается литерал RegExp, возвращался бы новый объект. Реализация в броузере IE всегда соответствовала поведению, соответствующему ECMAScript 5, и большинство современных броузеров также перешли на новую реализацию, раньше, чем полностью реализовали новый стандарт.

Подмножества и расширения JavaScript

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

Стандарт ECMAScript 3 был опубликован в 1999 году, и прошло десять лет, прежде чем стандарт был обновлен до версии ECMAScript 5, вышедшей в 2009 году. Брендан Эйх (Brendan Eich), создатель JavaScript, продолжал развивать язык на протяжении всех этих десяти лет (спецификация ECMAScript явно разрешает расширение языка) и совместно с проектом Mozilla выпустил версии JavaScript 1.5, 1.6, 1.7, 1.8 и 1.8.1 в Firefox 1.0, 1.5, 2, 3 и 3.5. Некоторые из расширенных особенностей JavaScript вошли в стандарт ECMAScript 5, но многие остаются не-стандартизованными. Однако, как ожидается, некоторые из оставшихся нестандартных особенностей будут стандартизованы в будущем.

Эти расширения поддерживаются броузером Firefox, точнее, реализованным в нем интерпретатором Spidermonkey языка JavaScript. Созданный проектом Mozilla интерпретатор Rhino языка JavaScript, написанный на языке Java (раздел 12.1), также поддерживает большинство расширений. Однако, поскольку эти расширения языка не являются стандартными, они не особенно полезны для веб-разра-ботчиков, которым требуется обеспечить совместимость своих веб-приложений со всеми броузерами. Тем не менее они описываются в этой главе, потому что они:

  • чрезвычайно мощные;
  • могут быть стандартизованы в будущем;
  • могут использоваться при разработке расширений для Firefox;
  • могут использоваться для разработки серверных сценариев на языке JavaScript, когда используется интерпретатор Spidermonkey или Rhino (раздел 12.1).

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

Подмножества JavaScript

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

В предыдущих главах подробно рассматривался базовый язык JavaScript, и вскоре мы перейдем ко второй части книги, в которой рассказывается о том, как JavaScript встраивается в веб-броузеры, и описывается обширнейший API клиентского JavaScript. JavaScript – это язык программирования для Веб, и большая часть программного кода на языке JavaScript написана для выполнения в веб-броузерах. Однако JavaScript – это быстрый и универсальный язык с широкими возможностями, и нет никаких причин, по которым JavaScript не мог бы использоваться для решения других задач программирования. Поэтому, прежде чем перейти к знакомству с клиентским JavaScript, мы коротко рассмотрим две другие реализации JavaScript. Rhino – это интерпретатор JavaScript, написанный на языке Java, что обеспечивает программам на языке JavaScript доступ ко всем библиотекам языка Java. Интерпретатор Rhino рассматривается в разделе 12.1. Node -версия интерпретатора V8 JavaScript, созданного компанией Google, включающая низкоуровневые интерфейсные библиотеки доступа к POSIX (Unix) API -к файлам, процессам, потокам, сокетам и так далее – с особым упором на асинхронные операции ввода/вывода, сетевые взаимодействия и работу с протоколом HTTP. Интерпретатор Node рассматривается в разделе 12.2.

Серверный JavaScript

Название главы говорит, что она посвящена «серверному» JavaScript, а обычно для создания серверов и для управления ими используются интерпретаторы Node и Rhino. Но под словом «серверный» можно также понимать «все, что за пределами веб-броузера». Программы, выполняемые под управлением Rhino, способны создавать графические интерфейсы пользователя, используя фреймворк Swing для языка Java. А интерпретатор Node может выполнять программы на языке JavaScript, способные манипулировать файлами подобно тому, как это делают сценарии командной оболочки.

Цель этой короткой главы состоит в том, чтобы осветить некоторые направления за пределами веб-броузеров, где может использоваться язык JavaScript. Здесь не предпринимается попытка в полном объеме охватить интерпретатор Rhino или Node, а обсуждаемые здесь прикладные интерфейсы не описываются в справочном разделе. Очевидно, что в одной главе невозможно сколько-нибудь полно описать платформу Java или POSIX API, поэтому раздел об интерпретаторе Rhino предполагает, что читатели имеют некоторое знакомство с Java, а раздел об интерпретаторе Node предполагает знакомство с низкоуровневыми прикладными интерфейсами Unix.

Управление Java с помощью Rhino

Rhino – это интерпретатор JavaScript, написанный на языке Java, цель которого – упростить возможность создания программ на языке JavaScript, которые могли бы использовать мощь платформы Java. Интерпретатор Rhino автоматически выполняет преобразование простых типов JavaScript в простые типы Java и наоборот, благодаря чему сценарии на языке JavaScript могут читать и изменять свойства и вызывать методы объектов на языке Java.

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

Объект Window

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

  • В разделе 14.1 демонстрируется, как с помощью функций setTimeoutQ и setln-tervalQ зарегистрировать собственную функцию для вызова в определенные моменты времени в будущем.
  • В разделе 14.2 описывается, как использовать свойство location, чтобы получить URL-адрес текущего документа и загрузить новый документ.
  • В разделе 14.3 описывается свойство history и демонстрируется, как перемещаться взад и вперед по списку ранее посещавшихся страниц.
  • В разделе 14.4 демонстрируется, как использовать свойство navigator для получения информации о производителе броузера и как использовать свойство screen для определения размеров рабочего стола.
  • В разделе 14.5 демонстрируется, как выводить простые диалоги с текстовыми сообщениями, используя методы alertQ, confirmQ и promptQ, и как отображать диалоги с разметкой HTML с помощью метода showModalDialogQ.
  • В разделе 14.6 описывается, как регистрировать обработчик onerror, который будет вызываться при появлении необработанных исключений.
  • В разделе 14.7 рассказывается о том, что идентификаторы и имена HTML-элементов используются в качестве свойств объекта Window.
  • В самом длинном разделе 14.8 описывается, как открывать и закрывать окна броузера и как писать JavaScript-код, призванный взаимодействовать с несколькими окнами и фреймами.
HTML-формы

HTML -элемент <form> и различные элементы ввода, такие как <input>, <select> и <button>, занимают видное место в разработке клиентских сценариев. Эти HTML-элементы появились в самом начале развития Всемирной паутины, еще до появления языка JavaScript. Формы HTML – это механизм веб-приложений первого поколения, не требующий применения JavaScript. Ввод пользователя собирается в элементах форм; затем форма отправляется на сервер; сервер обрабатывает ввод и генерирует новую HTML-страницу (обычно с новыми элементами форм) для отображения на стороне клиента.

Элементы HTML-форм по-прежнему остаются великолепным инструментом получения данных от пользователя, даже когда данные формы целиком обрабатываются JavaScript-сценарием на стороне клиента и не должны отправляться на сервер. С точки зрения программиста, разрабатывающего серверные сценарии, форма оказывается совершенно бесполезной, если в ней отсутствует кнопка отправки формы. Однако с точки зрения программиста, разрабатывающего клиентские сценарии, кнопка отправки вообще не нужна (хотя все еще может использоваться). Серверные программы опираются на механизм отправки форм – они обрабатывают данные порциями, объем которых определяется формой, – и это ограничивает их интерактивные возможности. Клиентские программы опираются на механизм событий – они могут откликаться на события, возникающие в отдельных элементах форм, – и это позволяет обеспечить более высокую степень интерактивности. Например, клиентская программа может проверять ввод пользователя по мере нажатия клавиш. Или откликаться на выбор флажка, разрешая доступ к набору параметров, которые имеют смысл, только когда флажок отмечен.

Ультрасовременные свойства CSS

Когда я работал над этой главой, CSS находился в процессе революционных изменений: производители броузеров реализовали поддержку новых мощных свойств стиля, таких как border-radius, text-shadow, box-shadow и column-count. Другой качественно новой возможностью CSS стали веб-шрифты: новое CSS-правило @font-face позволяет загружать и использовать нестандартные шрифты. (Подробнее о шрифтах, которые свободно могут использоваться в веб-страницах, и о простом механизме их загрузки с серверов компании Google можно прочитать на странице code.google.com/web-fonts.)

Еще одной революционной разработкой в области каскадных таблиц стилей стал модуль «CSS Transitions». Этот проект стандарта определяет возможности, позволяющие преобразовать в анимационные эффекты любые динамические изменения стилей CSS в документе. (Когда поддержка этого стандарта будет реализована достаточно широко, это позволит избавиться от программного кода, воспроизводящего анимационные эффекты, связанные со сменой стилей CSS, как показано в разделе 16.3.1.) Положения модуля «CSS Transitions» реализованы во всех текущих броузерах, кроме IE, но в именах свойств стиля присутствуют префиксы производителей. Проект родственного стандарта «CSS Animations», использующий модуль «CSS Transitions» в качестве основы, определяет более сложные анимационные последовательности. В настоящее время «CSS Animations» реализован только в веб-броузерах, основанных на механизме Webkit. Ни один из этих стандартов не описывается в данной главе, но вам, как веб-разработчикам, нужно знать о существовании этих технологий.

Другим проектом, касающимся CSS, и о котором должны знать веб-разработчики, является стандарт «CSS Transforms», позволяющий определять двухмерные преобразования (вращение, масштабирование, перемещение, а также их комбинации, определяемые в матричном виде), применяемые к любым элементам. Все текущие броузеры (включая версии IE9 и выше) поддерживают этот проект с добавлением приставок, соответствующих производителям. Более того, в Safari реализована поддержка расширения, позволяющего выполнять трехмерные преобразования, но пока неясно, последуют ли этому другие броузеры.

Работа с протоколом HTTP

Протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP) определяет, как веб-броузеры должны запрашивать документы, как они должны передавать информацию веб-серверам и как веб-серверы должны отвечать на эти запросы и передачи. Очевидно, что веб-броузеры очень много работают с протоколом HTTP. Тем не менее, как правило, сценарии не работают с протоколом HTTP, когда пользователь щелкает на ссылке, отправляет форму или вводит URL в адресной строке.

Однако JavaScript-код способен работать с протоколом HTTP. HTTP-запросы могут инициироваться, когда сценарий устанавливает значение свойства location объекта Window или вызывает метод submitQ объекта Form. В обоих случаях броузер загружает в окно новую страницу. Такого рода взаимодействие с протоколом HTTP может быть вполне оправданным в веб-страницах, состоящих из нескольких фреймов, но в этой главе мы будем говорить совсем о другом. Здесь мы рассмотрим такое взаимодействие JavaScript-кода с веб-сервером, при котором веб-броузер не перезагружает содержимое окна или фрейма.

Термин Ajax описывает архитектуру веб-приложений, отличительной чертой которых является работа с протоколом HTTP.1 Ключевой особенностью Ajax-при ложения является использование протокола HTTP для инициации обмена данными с веб-сервером без необходимости перезагружать страницу. Возможность избежать перезагрузки страницы (что было привычным на первых этапах развития Всемирной паутины) позволяет создавать веб-приложения, близкие по своему поведению к обычным приложениям. Веб-приложение может использовать технологии Ajax для передачи на сервер результатов взаимодействия с пользователем или для ускорения запуска приложения, отображая сначала простую страницу и подгружая дополнительные данные и компоненты страницы по мере необходимости.

Термин Comet описывает похожую архитектуру веб-приложений, также использующих протокол HTTP.1 В некотором смысле архитектура Comet является обратной по отношению к Ajax: в архитектуре Comet не клиент, а сервер инициирует взаимодействие, асинхронно отсылая сообщения клиенту. Если веб-приложению потребуется отвечать на сообщения, отправляемые сервером, оно сможет использовать приемы Ajax для отправки или запроса данных. В архитектуре Ajax клиент «вытягивает» данные с сервера. В архитектуре Comet сервер «навязывает» данные клиенту. Иногда архитектуру Comet называют «Server Push», «Ajax Push» и «HTTP Streaming».

Есть множество способов реализации архитектур Ajax и Comet, и эти базовые реализации иногда называют транспортами. Элемент <img>, например, имеет свойство src. Когда сценарий записывает в это свойство URL-адрес, инициируется HTTP-запрос GET и выполняется загрузка содержимого с этого URL-адреса. Таким образом, сценарий может отправлять информацию веб-серверу, добавляя ее в виде строки запроса в URL-адрес изображения и устанавливая свойство src элемента <img>. В ответ на этот запрос веб-сервер должен вернуть некоторое изображение, которое, например, может быть невидимым: прозрачным и размером 1×1 пиксел.2

Элемент <img> – не самый лучший транспорт Ajax, потому что обмен данными ведется только в одном направлении: клиент может передать данные серверу, но ответом сервера всегда будет изображение, извлечь информацию из которого на стороне клиента очень непросто. Элемент <if rame> обладает большей гибкостью. При использовании элемента <if гате> в качестве транспорта Ajax сценарий сначала добавляет в URL-адрес информацию, предназначенную для веб-сервера, а затем записывает этот URL-адрес в свойство src тега <if rame>. Сервер создает HTML-документ, содержащий ответ на запрос, и отправляет его обратно веб-броузеру, который выводит ответ в теге <if rame>. При этом элемент <if rame> необязательно должен быть видимым для пользователя – он может быть сокрыт, например, средствами таблиц стилей CSS. Сценарий может проанализировать ответ сервера, выполнив обход документа в элементе <if rame>. Обратите внимание, что взаимодействие с документом ограничивается политикой общего происхождения, о которой рассказывается в разделе 13.6.2.

Библиотека jQuery

В языке JavaScript чрезвычайно простой базовый и весьма сложный клиентский API, который к тому же отягощен многочисленными несовместимостями между броузерами. С выходом IE9 исчезли самые неприятные несовместимости, но многие программисты считают, что веб-приложения удобнее писать с использованием фреймворков или вспомогательных библиотек на языке JavaScript, упрощающих решение типичных задач и скрывающих различия между броузерами. На момент написания этих строк одной из наиболее популярных и широко используемых была библиотека jQuery.1

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

Библиотека jQuery упрощает поиск элементов документа и облегчает манипулирование ими: добавление содержимого, изменение HTML-атрибутов и CSS-свойств, определение обработчиков событий и воспроизведение анимационных эффектов. Она также имеет вспомогательные функции поддержки архитектуры Ajax, позволяющие выполнять динамические HTTP-запросы, и функции общего назначения для работы с объектами и массивами.

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

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

  • Выразительный синтаксис (CSS-селекторов) для ссылок на элементы в документе
  • Эффективная реализация механизма запросов, выполняющего поиск множества элементов документа, соответствующих указанному CSS-селектору
  • Множество удобных методов для манипулирования множествами выбранных элементов
  • Мощные приемы функционального программирования для выполнения операций сразу над всей группой элементов
  • Выразительная идиома представления последовательностей операций (составление цепочек из вызовов методов)

Эта глава начинается с введения в библиотеку j Query, где будет показано, как выполнять простейшие запросы и как обрабатывать результаты. В последующих разделах описывается:

  • Как изменять HTML-атрибуты, стили и классы CSS, значения и содержимое элементов HTML-форм, управлять геометрией и данными
  • Как изменять структуру документа, вставляя, замещая, обертывая и удаляя элементы
  • Как использовать модель событий библиотеки jQuery, совместимую со всеми броузерами
  • Как с помощью jQuery воспроизводить анимационные визуальные эффекты
  • Как выполнять HTTP-запросы с помощью механизма поддержки архитектуры Ajax, реализованном в библиотеке jQuery
  • Вспомогательные функции jQuery
  • Полный синтаксис селекторов jQuery, и как использовать расширенные методы поиска из библиотеки jQuery
  • Как расширять библиотеку jQuery, создавая и используя расширения
  • Библиотека jQuery Ш
Основы jQuery

Библиотека jQuery определяет единственную глобальную функцию с именем jQueryQ. Эта функция используется настолько часто, что библиотека определяет также глобальное имя $, как сокращенный псевдоним этой функции. Эти два имени – все, что библиотека jQuery добавляет в глобальное пространство имен.

Прикладные интерфейсы HTML5

Под термином HTML5 обычно подразумевается последняя версия спецификации языка разметки HTML, но этот термин также используется для обозначения целого комплекса веб-технологий, которые разрабатываются и определяются как часть языка разметки HTML или сопутствующие ему. Официально этот комплекс технологий называется «Open Web Platform». Однако на практике чаще используется сокращенное название «HTML5», и в данной главе мы будем использовать его именно в этом смысле. В других главах этой книги уже описывались некоторые новые прикладные интерфейсы HTML5:

  • В главе 15 были представлены методы getElementsByClassNameO, querySelector-А11() и атрибуты данных элементов документа.
  • В главе 16 было описано свойство classList элементов.
  • В главе 18 рассказывалось о спецификации «XMLHttpRequest Level 2», о выполнении междоменных HTTP-запросов и о прикладном интерфейсе Event-Source, определяемом спецификацией «Server-Sent Events».
  • В главе 20 был описан прикладной интерфейс Web Storage и кэш приложений для автономных веб-приложений.
  • В главе 21 были представлены элементы <audio>, <video> и <canvas>, а также средства для работы с векторной графикой SVG.

Эта глава охватывает ряд других прикладных интерфейсов HTML5:

  • В разделе 22.1 рассматривается прикладной интерфейс объекта Geolocation, позволяющий броузерам определять географическое местонахождение пользователя (с его разрешения).
  • В разделе 22.2 рассказывается о прикладных интерфейсах управления историей посещений, которые позволяют веб-приложениям сохранять и обновлять информацию о своем состоянии в ответ на использование кнопок Back (Назад) и Forward (Вперед) броузера, без необходимости выполнять полную перезагрузку страницы с веб-сервера.
Геопозиционирование

Прикладной интерфейс объекта Geolocation (www.w3.org/TR/geolocation-API/) позволяет программам на языке JavaScript запрашивать у броузера географическое местонахождение пользователя. Такие приложения могут отображать карты, маршруты и другую информацию, связанную с текущим местонахождением пользователя. При этом, конечно, возникает важная проблема соблюдения тайны частной информации, поэтому броузеры, поддерживающие прикладной интерфейс Geolocation, всегда запрашивают у пользователя подтверждение, прежде чем передать JavaScript-программе информацию о физическом местонахождении пользователя.

Post navigation

Скачать Flanagan D 2012 - ТОРРЕНТИНО - торрент трекер

Flanagan D / Дэвид Флэнаган - JavaScript: The Definitive Guide 6 / JavaScript. Подробное руководство (6-е издание) [2012, DjVu, RUS]

JavaScript: The Definitive Guide 6 / JavaScript. Подробное руководство (6-е издание)
Год: 2012
Автор: Flanagan D / Дэвид Флэнаган
Переводчик: Ю. Бочина
Жанр: Компьютерная литература
Издательство: Символ-Плюс
ISBN: 978-5-93286-215-5
Язык: Русский
Формат: DjVu
Качество: Отсканированные страницы + слой распознанного текста
Интерактивное оглавление: Да
Количество страниц: 1080
Описание: C момента выхода первого издания в 1996 году книга "JavaScript: Подробное руководство" превратилась в библию программистов на JavaScript. За эти годы было издано более 500000 экземпляров, и веб-разработчики по-прежнему с восторгом отзываются о ней.
Эта книга - одновременно и руководство программиста, и полноценный справочник по базовому языку JavaScript и клиентским прикладным интерфейсам, предоставляемым веб-броузерами.
Книга делится на четыре части. Часть I охватывает сам язык JavaScript. Часть II охватывает клиентский JavaScript: прикладные программные интерфейсы JavaScript, определяемые стандартом HTML5 и сопутствующими ему стандартами и реализованные в веб-броузерах.
Издание содержит практически все сведения, необходимые для разработки сценариев JavaScript, включая:
Взаимодействие с протоколом HTTP и использование технологии Ajax
Обработка XML-документов
Создание графических изображений на стороне клиента с помощью тега "canvas" и технологии SVG
Пространства имен в JavaScript, необходимые для разработки сложных программ
Классы, замыкания и статические значения
Новые технологии, вошедшие в стандарт HTML5
Применение библиотеки jQuery

Похожие торренты

Комментарии

К сожалению пока никто не оставил комментарий ;(

© 2009–2016, Торрентино
По всем вопросам обращаться на admin@torrentino.me

Правообладателям просьба писать вежливо и своевременно: abuse@torrentino.me и мы отнесемся к вашей просьбе с пониманием.