Звоните: (067) 644-70-74
Напишите нам burtrest@gmail.com

Книга Веб-приложения на JavaScript . Маккоу

136.50 грн.

Артикул: ffc46c19fbc7 Категория:

Описание

год-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
Преобразования ……………………..