год-2012
288 страниц
Помощь HTML5 и CSS3 с каждым днем становится все качественнее и полнее, однако вам требуется решить, основываясь на вашей клиентской аудитории, где именно возможно применять эти технологии. Ведь создание на языке JAVASCRIPT многофункциональных rich-приложений, которые выполняются на стороне клиента, - непростая задача. Это книга поможет вам изучить все приемы, применяемые для создания наиболее современных JAVASCRIPT-приложений, в частности структуры, применение MVC, фреймы, связь с сервером и кросс-доменные запросы, создание приложений реального времени и многое иное. Чтоб помочь вам понять концепции разработки JAVASCRIPT-приложений, рассмотрена работа настоящих приложений. Для опытных девелоперов. Все это Вы найдете в книге Веб-приложения на JavaScript . Маккоу
Оглавление книги
Веб-приложения на JavaScript . Маккоу
Введение...................................................................................... 13
Для кого предназначена эта книга?.......................................................................................13
Структура книги..........................................................................................................................14
Соглашения, используемые в данной книге ......................................................................17
Сопроводительные файлы .......................................................................................................18
Соглашения, касающиеся программного кода..................................................................18
Примеры jQuery...........................................................................................................................19
Holla..............................................................................................................................................19
Примечание автора .....................................................................................................................19
От издательства............................................................................................................................20
Глава 1. MVC и классы ................................................................ 21
В начале пути................................................................................................................................21
Добавление структуры...............................................................................................................22
Что такое MVC?...........................................................................................................................23
Модель.............................................................................................................................................23
Представление..............................................................................................................................24
Контроллер....................................................................................................................................25
Стремясь к модульности, создаем классы ..........................................................................26
Добавление функций к классам.............................................................................................28
Добавление методов к нашей библиотеке классов..........................................................28
Наследование в классе с использованием свойства Prototype................................31
Добавление наследования к нашей библиотеке класса .................................................32
Вызов функции.........................................................................................................................33
Управление областью действия в нашей библиотеке классов ....................................35
Добавление закрытых функций.............................................................................................37
Библиотеки классов....................................................................................................................38
Глава 2. События и наблюдение................................................ 40
Прослушивание событий..........................................................................................................40
Порядок обработки событий ...............................................................................................41
Отмена событий .......................................................................................................................42
Объект события............................................................................................................................42
Библиотеки событий ..............................................................................................................44
Изменение контекста .............................................................................................................45
Делегирование событий ........................................................................................................45
Пользовательские события ..................................................................................................46
Пользовательские события и дополнительные модули jQuery ..............................47
Элементы, не имеющие отношения к модели DOM.......................................................49
Глава 3. Модели и данные.......................................................... 53
MVC и организация пространства имен.............................................................................53
Создание ORM.............................................................................................................................55
Прототипное наследование..................................................................................................55
Добавление свойств ORM....................................................................................................56
Удерживание записей ............................................................................................................58
Добавление поддержки ID ...................................................................................................59
Адресация ссылок....................................................................................................................60
Загрузка в данные....................................................................................................................61
Включение данных в код страницы...................................................................................62
Загрузка данных с помощью Ajax......................................................................................63
JSONP..........................................................................................................................................66
Безопасность при использовании междоменных запросов ......................................67
Заполнение нашей модели ORM...........................................................................................67
Локальное хранение данных................................................................................................68
Добавление локального хранилища к нашей модели ORM.........................................70
Отправка новых записей на сервер ...................................................................................71
Глава 4. Контроллеры и состояния............................................ 73
Модульная схема .........................................................................................................................74
Глобальный импорт ................................................................................................................74
Глобальный экспорт................................................................................................................74
Добавление контекста ............................................................................................................75
Абстрагирование в библиотеку...........................................................................................76
Загрузка контроллеров после документа........................................................................78
Доступ к представлениям.....................................................................................................79
Делегирование событий ........................................................................................................81
Конечные автоматы.................................................................................................................83
Маршрутизация .......................................................................................................................85
Использование хэшей URL-адресов.................................................................................85
Обнаружение изменений хэша ...........................................................................................86
Ajax Crawling.............................................................................................................................87
Использование History API HTML5................................................................................88
Объект события............................................................................................................................42
Библиотеки событий ..............................................................................................................44
Изменение контекста .............................................................................................................45
Делегирование событий ........................................................................................................45
Пользовательские события ..................................................................................................46
Пользовательские события и дополнительные модули jQuery ..............................47
Элементы, не имеющие отношения к модели DOM.......................................................49
Глава 3. Модели и данные.......................................................... 53
MVC и организация пространства имен.............................................................................53
Создание ORM.............................................................................................................................55
Прототипное наследование..................................................................................................55
Добавление свойств ORM....................................................................................................56
Удерживание записей ............................................................................................................58
Добавление поддержки ID ...................................................................................................59
Адресация ссылок....................................................................................................................60
Загрузка в данные....................................................................................................................61
Включение данных в код страницы...................................................................................62
Загрузка данных с помощью Ajax......................................................................................63
JSONP..........................................................................................................................................66
Безопасность при использовании междоменных запросов ......................................67
Заполнение нашей модели ORM...........................................................................................67
Локальное хранение данных................................................................................................68
Добавление локального хранилища к нашей модели ORM.........................................70
Отправка новых записей на сервер ...................................................................................71
Глава 4. Контроллеры и состояния............................................ 73
Модульная схема .........................................................................................................................74
Глобальный импорт ................................................................................................................74
Глобальный экспорт................................................................................................................74
Добавление контекста ............................................................................................................75
Абстрагирование в библиотеку...........................................................................................76
Загрузка контроллеров после документа........................................................................78
Доступ к представлениям.....................................................................................................79
Делегирование событий ........................................................................................................81
Конечные автоматы.................................................................................................................83
Маршрутизация .......................................................................................................................85
Использование хэшей URL-адресов.................................................................................85
Обнаружение изменений хэша ...........................................................................................86
Ajax Crawling.............................................................................................................................87
Использование History API HTML5................................................................................88
Глава 5. Представления и использование шаблонов .............. 91
Динамически интерпретируемые представления............................................................91
Шаблоны ........................................................................................................................................93
Шаблонные помощники ...........................................................................................................95
Хранение шаблонов ................................................................................................................95
Связывание ................................................................................................................................97
Привязка моделей ...................................................................................................................98
Глава 6. Управление зависимостями....................................... 100
CommonJS ....................................................................................................................................101
Объявление модуля..................................................................................................................102
Модули и браузер ..................................................................................................................102
Загрузчики модулей .............................................................................................................103
Yabble .........................................................................................................................................103
RequireJS...................................................................................................................................104
Изолирование модулей........................................................................................................106
Альтернативы модулям.......................................................................................................107
LABjs..........................................................................................................................................107
FUBC .........................................................................................................................................108
Глава 7. Работа с файлами....................................................... 109
Поддержка браузерами............................................................................................................109
Получение информации о файлах.......................................................................................110
Ввод файлов ................................................................................................................................110
Перетаскивание..........................................................................................................................111
Захват и перетаскивание.....................................................................................................112
Освобождение после перетаскивания............................................................................114
Отмена действия по умолчанию при перетаскивании .............................................115
Копирование и вставка............................................................................................................115
Копирование............................................................................................................................116
Вставка после копирования ...............................................................................................116
Чтение файлов............................................................................................................................117
Блобы и части..........................................................................................................................119
Собственные кнопки просмотра ..........................................................................................120
Передача файлов........................................................................................................................120
Индикатор выполнения на основе Ajax.........................................................................122
Сценарий передачи файлов с использованием перетаскивания и jQuery ............124
Создание области освобождения перетаскиваемого элемента..............................124
Передача файла ......................................................................................................................125
Глава 8. Веб-технологии реального времени......................... 126
История работы в режиме реального времени................................................................126
WebSockets..................................................................................................................................127
Node.js и Socket.IO.................................................................................................................131
Архитектура реального времени..........................................................................................133
Ощущаемая скорость ...............................................................................................................135
Глава 9. Тестирование и отладка............................................. 137
Блочное тестирование .............................................................................................................139
Утверждения ...........................................................................................................................139
QUnit..........................................................................................................................................140
Jasmine .......................................................................................................................................144
Драйверы......................................................................................................................................146
Автономное тестирование ......................................................................................................149
Zombie........................................................................................................................................149
Ichabod.......................................................................................................................................151
Распределенное тестирование ..............................................................................................152
Предоставление поддержки...................................................................................................153
Инспекторы.................................................................................................................................153
Веб-инспектор.........................................................................................................................154
Firebug .......................................................................................................................................155
Консоль .........................................................................................................................................156
Вспомогательные функции консоли...............................................................................157
Использование отладчика ......................................................................................................158
Анализ сетевых запросов........................................................................................................160
Профилирование и хронометраж........................................................................................161
Глава 10. Развертывание ......................................................... 164
Производительность ................................................................................................................164
Кэширование...........................................................................................................................165
Минификация.........................................................................................................................167
Сжатие с помощью Gzip ......................................................................................................169
Использование CDN.............................................................................................................169
Аудиторы......................................................................................................................................170
Ресурсы .........................................................................................................................................171
Глава 11. Библиотека Spine...................................................... 172
Установка .....................................................................................................................................172
Классы...........................................................................................................................................173
Создание экземпляра............................................................................................................173
Расширение классов .............................................................................................................174
Контекст....................................................................................................................................175
События ........................................................................................................................................176
Модели ..........................................................................................................................................177
Извлечение записей..............................................................................................................178
События моделей...................................................................................................................179
Проверка ...................................................................................................................................180
Сохранение состояния.........................................................................................................180
Контроллеры...............................................................................................................................183
Использование представительства..................................................................................184
Элементы..................................................................................................................................184
Делегирование событий ......................................................................................................185
События контроллера ..........................................................................................................185
Глобальные события.............................................................................................................186
Схема визуализации.............................................................................................................186
Схема элемента.......................................................................................................................187
Создание программы управления контактами ...............................................................189
Модель Contact ......................................................................................................................190
Контроллер Sidebar...............................................................................................................191
Контроллер Contacts............................................................................................................193
Контроллер App......................................................................................................................196
Глава 12. Библиотека Backbone............................................... 198
Модели ..........................................................................................................................................199
Модели и атрибуты...............................................................................................................200
Коллекции....................................................................................................................................201
Управление порядком следования экземпляров моделей в коллекции.............202
Представления............................................................................................................................203
Визуализация представлений ...........................................................................................204
Делегирование событий ......................................................................................................204
Привязка и контекст.............................................................................................................205
Контроллеры...............................................................................................................................206
Синхронизация с сервером....................................................................................................208
Заполнение коллекций........................................................................................................210
На серверной стороне...........................................................................................................210
Настройка поведения ...........................................................................................................211
Создание списка To-Do (текущих дел) .............................................................................213
Глава 13. Библиотека JavaScriptMVC....................................... 220
Установка .....................................................................................................................................221
Классы...........................................................................................................................................221
Создание экземпляра............................................................................................................222
Вызов основных методов ....................................................................................................222
Представительства ................................................................................................................222
Статическое наследование .................................................................................................223
Самодиагностика ...................................................................................................................223
Пример модели.......................................................................................................................223
Модель...........................................................................................................................................224
Атрибуты и наблюдаемые объекты .................................................................................224
Расширенные модели...........................................................................................................227
Методы-установщики ..........................................................................................................227
Умолчания................................................................................................................................228
Методы-помощники .............................................................................................................228
Инкапсуляция служб ...........................................................................................................229
Создание задачи .....................................................................................................................230
Получение задачи ..................................................................................................................231
Получение задач.....................................................................................................................231
Обновление задачи................................................................................................................231
Удаление задачи.....................................................................................................................232
Преобразование типов .........................................................................................................232
CRUD-события ......................................................................................................................233
Использование в представлении шаблонов на стороне клиента..............................233
Основное применение..........................................................................................................234
Модификаторы jQuery.........................................................................................................234
Загрузка из script-тега..........................................................................................................235
$.View и подшаблоны...........................................................................................................235
Deferred-объекты ...................................................................................................................235
Упаковка, предварительная загрузка и производительность ................................236
$.Controller: фабрика по производству дополнительных
модулей для jQuery ................................................................................................................237
Общее представление...........................................................................................................239
Создание экземпляра контроллера .................................................................................240
Привязка событий.................................................................................................................241
Шаблонные действия...........................................................................................................241
Объединение компонентов: обобщенный CRUD-список...........................................243
Приложение А. Основы jQuery................................................. 245
Обход элементов DOM-модели ...........................................................................................247
Работа с DOM.............................................................................................................................248
События ........................................................................................................................................250
Ajax .................................................................................................................................................251
Исполнение роли законопослушной гражданки............................................................252
Расширения .................................................................................................................................253
Создание дополнительного модуля jQuery Growl.........................................................254
Приложение Б. CSS-расширения ............................................. 257
Переменные .................................................................................................................................257
Миксины.......................................................................................................................................258
Вложенные правила..................................................................................................................258
Включение других таблиц стилей .......................................................................................259
Цвета ..............................................................................................................................................259
Как можно воспользоваться Less?.......................................................................................259
С помощью окна командной строки ...............................................................................260
С помощью модуля Rack.....................................................................................................260
С помощью JavaScript..........................................................................................................260
Less.app ......................................................................................................................................260
Приложение В. Справочник по CSS3 ....................................... 262
Префиксы.....................................................................................................................................263
Цвета ..............................................................................................................................................263
Скругленные углы.....................................................................................................................264
Отбрасываемые тени................................................................................................................265
Тени для текста ..........................................................................................................................266
Градиенты.....................................................................................................................................267
Составной фон............................................................................................................................268
Селекторы ....................................................................................................................................268
N-й дочерний элемент ..........................................................................................................269
Прямой потомок.....................................................................................................................269
Обращение селекторов ........................................................................................................270
Переходы ......................................................................................................................................270
Создание границ с помощью изображения ......................................................................271
Изменения алгоритма расчета ширины и высоты элемента......................................272
Преобразования ..........................