AJAX в действии

Дейв Крейн, Эрик Паскарелло, Даррен Джеймс

В этой книге описан новый подход к созданию Web-приложений, известный как Ajax. Авторы осматривают составные части Ajax: JavaScript, CSS, DOM и объект XMLHttpRequest. Кроме того, в книге нашли отражение вопросы управления кодом, взаимодействия клиента и сервера и применения архитектуры «модель-представление-контроллер« на разных уровнях приложения.

Читатель также найдет сведения о защите и производительности - важных характеристиках, существенно влияющих на популярность любого продукта. Рассматриваемые вопросы иллюстрируются примерами практического использования Ajax. В приложениях содержится дополнительная информация об инструментальных средствах, о языке JavaScript и библиотеках. Материал книги изложен на высоком уровне и будет полезен специалистам высокой и средней квалификации.

Вильямс, 2006.

ISBN 978-5-8459-1034-9, 1-9323-9461-3

Количество страниц: 640.

Содержание книги «AJAX в действии»:

  • 31 I. НОВЫЙ ВЗГЛЯД НА WEB-ПРИЛОЖЕНИЕ
    • 33 1. Каким должен быть Web-интерфейс
      • 34 1.1. Нужны ли богатые клиенты
        • 35 1.1.1. Действия пользователя при работе с приложением
        • 39 1.1.2. Накладные расходы при работе в сети
        • 42 1.1.3. Асинхронное взаимодействие
        • 45 1.1.4. Независимый и переходный образы использования
      • 47 1.2. Четыре основных принципа Ajax
        • 47 1.2.1. Браузер имеет дело с приложением, а не с содержимым
        • 49 1.2.2. Сервер доставляет данные, а не содержимое
        • 51 1.2.3. Пользователь может непрерывно взаимодействовать с приложением
        • 53 1.2.4. Реальное кодирование требует порядка
      • 54 1.3. Применение богатых клиентов Ajax
        • 54 1.3.1. Системы, созданные с использованием Ajax
        • 55 1.3.2. Google Maps
      • 58 1.4. Альтернативные технологии
        • 58 1.4.1. Macromedia Flash
        • 59 1.4.2. Java Web Start
      • 59 1.5. Резюме
      • 60 1.6. Ресурсы
    • 63 2. Знакомство с Ajax
      • 64 2.1. Основные элементы Ajax
      • 66 2.2. JavaScript изучался не зря
      • 68 2.3. Определение внешнего вида с помощью CSS
        • 68 2.3.1. Селекторы CSS
        • 70 2.3.2. Свойства стилей
        • 71 2.3.3. Простой пример использования CSS
      • 76 2.4. Организация просмотра с помощью DOM
        • 78 2.4.1. Обработка DOM с помощью JavaScript
        • 80 2.4.2. Поиск узла DOM
        • 81 2.4.3. Создание узла DOM
        • 82 2.4.4. Добавление стилей к документу
        • 83 2.4.5. Свойство innerHTML
      • 84 2.5. Асинхронная загрузка с использованием XML
        • 84 2.5.1. Элементы IFrame
        • 86 2.5.2. Объекты XmlDocument и XMLHttpRequest
        • 89 2.5.3. Передача запроса серверу
        • 91 2.5.4. Использование функции обратного вызова для контроля запроса
        • 92 2.5.5. Жизненный цикл процедуры поддержки запроса
      • 95 2.6. Отличия Ajax от классических технологий
      • 97 2.7. Резюме
      • 98 2.8. Ресурсы
    • 99 3. Управление кодом Ajax
      • 100 3.1. Порядок из хаоса
        • 101 3.1.1. Образы разработки
        • 102 3.1.2. Реструктуризация и Ajax
        • 102 3.1.3. Во всем надо знать меру
        • 103 3.1.4. Реструктуризация в действии
      • 106 3.2. Варианты применения реструктуризации
        • 107 3.2.1. Несоответствие браузеров: образы разработки Facade и Adapter
        • 110 3.2.2. Управление обработчиками событий: образ разработки Observer
        • 113 3.2.3. Повторное использование обработчиков событий: образ разработки Command
        • 116 3.2.4. Обеспечение единственной ссылки на ресурс: образ разработки Singleton
      • 120 3.3. «Модель-представление-контроллер»
      • 122 3.4. Применение MVC для серверных программ
        • 123 3.4.1. Серверная программа Ajax, созданная без применения образов разработки
        • 126 3.4.2. Реструктуризация модели
        • 129 3.4.3. Разделение содержимого и представления
      • 132 3.5. Библиотеки независимых производителей
        • 133 3.5.1. Библиотеки, обеспечивающие работу с различными браузерами
        • 137 3.5.2. Компоненты и наборы компонентов
        • 140 3.5.3. Элементы, располагаемые на стороне сервера
      • 143 3.6. Резюме
      • 144 3.7. Ресурсы
  • 145 II. ОСНОВНЫЕ ПОДХОДЫ К РАЗРАБОТКЕ ПРИЛОЖЕНИЙ
    • 147 4. Web-страница в роли приложения
      • 148 4.1. Разновидности архитектуры MVC
        • 148 4.1.1. Применение архитектуры MVC к программам различных уровней
        • 149 4.1.2. Применение архитектуры MVC к объектам присутствующим в среде браузера
      • 151 4.2. Представление в составе Ajax-приложения
        • 152 4.2.1. Отделение логики от представления
        • 157 4.2.2. Отделение представления от логики
      • 161 4.3. Контроллер в составе Ajax -приложения
        • 161 4.3.1. Классические JavaScript-обработчики
        • 164 4.3.2. Модель обработки событий W3C
        • 165 4.3.3. Реализация гибкой модели событий в JavaScript
      • 169 4.4. Модель в составе Ajax-приложения
        • 170 4.4.1. Использование JavaScript для моделирования предметной области
        • 171 4.4.2. Взаимодействие с сервером
      • 173 4.5. Генерация представления на основе модели
        • 173 4.5.1. Отражение объектов JavaScript
        • 177 4.5.2. Обработка массивов и объектов
        • 180 4.5.3. Включение контроллера
      • 183 4.6. Резюме
      • 183 4.7. Ресурсы
    • 185 5. Роль сервера в работе Ajax-приложения
      • 186 5.1. Программы, выполняемые на сервере
      • 187 5.2. Создание программ на стороне сервера
        • 187 5.2.1. Популярные языки программирования
        • 188 5.2.2. N-уровневые архитектуры
        • 189 5.2.3. Управление моделью предметной области на стороне клиента и на стороне сервера
      • 190 5.3. Принципы создания программ на сервере
        • 190 5.3.1. Серверные программы, не соответствующие основным принципам разработки
        • 192 5.3.2. Использование архитектуры Model2
        • 193 5.3.3. Использование архитектуры на базе компонентов
        • 196 5.3.4. Архитектуры, ориентированные на использование Web-служб
      • 200 5.4. Частные решения: обмен данными
        • 201 5.4.1. Взаимодействие, затрагивающее только клиентскую программу
        • 201 5.4.2. Пример отображения информации о планетах
        • 204 5.4.3. Взаимодействие, ориентированное на содержимое
        • 207 5.4.4. Взаимодействие, ориентированное на сценарий
        • 212 5.4.5. Взаимодействие, ориентированное на данные
      • 217 5.5. Передача данных серверу
        • 217 5.5.1. Использование HTML-форм
        • 219 5.5.2. Использование объекта XMLHttpRequest
        • 221 5.5.3. Управление обновлением модели
      • 230 Резюме
      • 231 Ресурсы
  • 235 III. СОЗДАНИЕ ПРОФЕССИОНАЛЬНЫХ AJAX-ПРИЛОЖЕНИЙ
    • 237 6. Информация для пользователя
      • 238 6.1. Создание качественного приложения
        • 239 6.1.1. Отклик программы
        • 239 6.1.2. Надежность
        • 240 6.1.3. Согласованность
        • 241 6.1.4. Простота
        • 241 6.1.5. Как получить результат
      • 242 6.2. Предоставление сведений пользователю
        • 242 6.2.1. Поддержка ответов на собственные запросы
        • 244 6.2.2. Обработка обновлений, выполненных другими пользователями
      • 248 6.3. Создание системы оповещения
        • 249 6.3.1. Основные принципы оповещения
        • 251 6.3.2. Определение требований к пользовательскому интерфейсу
      • 252 6.4. Реализация базовых средств оповещения
        • 252 6.4.1. Отображение пиктограмм в строке состояния
        • 255 6.4.2. Отображение подробных сообщений
        • 256 6.4.3. Формирование готовой системы
      • 262 6.5. Предоставление информации в запросах
      • 266 6.6. Информация о новизне данных
        • 266 6.6.1. Простой способ выделения данных
        • 268 6.6.2. Выделение данных с использованием библиотеки Scriptaculous
      • 269 6.7. Резюме
      • 270 6.8. Ресурсы
    • 271 7. Безопасность Ajax-приложений
      • 272 7.1. JavaScript и защита браузера
        • 273 7.1.1. Политика «сервера-источника»
        • 273 7.1.2. Особенности выполнения сценариев в Ajax-приложении
        • 274 7.1.3. Проблемы с поддоменами
        • 275 7.1.4. Несоответствие средств защиты в различных браузерах
      • 276 7.2. Взаимодействие с удаленным сервером
        • 277 7.2.1. Сервер в роли посредника при обращении к удаленной службе
        • 278 7.2.2. Взаимодействие с Web-службами
      • 288 7.3. Защита конфиденциальной информации
        • 288 7.3.1. Вмешательство в процесс передачи данных
        • 289 7.3.2. Организация защищенного HTTP-взаимодействия
        • 291 7.3.3. Передача шифрованных данных в ходе обычного HTTP-взаимодействия
      • 293 7.4. Управление доступом к потокам данных Ajax
        • 293 7.4.1. Создание защищенных программ на уровне сервера
        • 297 7.4.2. Ограничение доступа к данным из Web
      • 302 7.5. Резюме
      • 302 7.6. Ресурсы
    • 303 8. Производительность приложения
      • 304 8.1. Что такое производительность
      • 305 8.2. Скорость выполнения JavaScript программ
        • 306 8.2.1. Определение времени выполнения приложения
        • 310 8.2.2. Использование профилировщика Venkman
        • 313 8.2.3. Оптимизация скорости выполнения Ajax-приложения
      • 324 8.3. Использование памяти JavaScript-кодом
        • 324 8.3.1. Борьба с утечкой памяти
        • 327 8.3.2. Особенности управления памятью в приложениях Ajax
      • 333 8.4. Разработка с учетом производительности
        • 333 8.4.1. Измерение объема памяти, занимаемой приложением
        • 337 8.4.2. Простой пример управления памятью
        • 342 8.4.3. Как уменьшить объем используемой памяти в 150 раз
      • 344 8.5. Резюме
      • 345 8.6. Ресурсы
  • 347 IV. AJAX В ПРИМЕРАХ
    • 349 9. Динамические связанные комбинации
      • 350 9.1. Сценарий двойной комбинации
        • 350 9.1.1. Недостатки клиентского решения
        • 351 9.1.2. Недостатки клиентского решения
        • 352 9.1.3. Решения, предлагаемые Ajax
      • 353 9.2. Архитектура клиента
        • 353 9.2.1. Разработка формы
        • 355 9.2.2. Разработка взаимодействия клиент/сервер
      • 356 9.3. Реализация сервера: VB.NET
        • 357 9.3.1. Определение формата XML-ответа
        • 358 9.3.2. Написание кода сервера
      • 360 9.4. Представление результатов
        • 361 9.4.1. Навигация в документе XML
        • 362 9.4.2. Применение каскадных таблиц стилей
      • 364 9.5. Дополнительные вопросы
        • 364 9.5.1. Запросы при выборе нескольких элементов
        • 365 9.5.2. Переход от двойного связного выбора к тройному
      • 366 9.6. Реструктуризация
        • 367 9.6.1. Новый и улучшенный объект net.ContentLoader
        • 372 9.6.2. Создание компонента двойного списка
      • 379 9.7. Резюме
    • 381 10. Опрережающий ввод
      • 382 10.1. Изучаем опережающий ввод
        • 382 10.1.1. Типичные элементы приложений опережающего ввода
        • 384 10.1.2. Google Suggest
        • 385 10.1.3. Ajax как средство опережающего ввода
      • 386 10.2. Структура серверной части сценария: С#
        • 386 10.2.1. Сервер и база данных
        • 388 10.2.2. Тестирование серверного кода
      • 389 10.3. Структура клиентской части сценария
        • 389 10.3.1. HTML
        • 390 10.3.2. JavaScript
        • 400 10.3.3. Обращение к серверу
      • 410 10.4. Дополнительные возможности
      • 411 10.5. Реструктуризация
        • 412 10.5.1. День 1: план разработки компонента TextSuggest
        • 415 10.5.2. День 2: создание TextSuggest - понятного и настраиваемого компонента
        • 418 10.5.3. День 3: включаем Ajax
        • 423 10.5.4. День 4: обработка событий
        • 430 10.5.5. День 5: пользовательский интерфейс всплывающего окна с предлагаемыми вариантами
        • 437 10.5.6. Итоги
      • 437 10.6. Резюме
    • 439 11. Улучшенный Web-портал Ajax
      • 440 11.1. Эволюционирующий портал
        • 440 11.1.1. Классический портал
        • 442 11.1.2. Портал с богатым пользовательским интерфейсом
      • 443 11.2. Создание портала с использованием Java
      • 444 11.3. Регистрация Ajax
        • 445 11.3.1. Таблица пользователя
        • 446 11.3.2. Серверная часть кода регистрации: Java
        • 449 11.3.3. Структура регистрации (клиентская часть)
      • 454 11.4. Реализация окон DHTML
        • 454 11.4.1. База данных окон портала
        • 455 11.4.2. Серверный код окна портала
        • 460 11.4.3. Добавление внешней библиотеки JavaScript
      • 462 11.5. Возможность автоматического сохранения
        • 463 11.5.1. Адаптация библиотеки
        • 465 11.5.2. Автоматическая запись информации в базе данных
      • 468 11.6. Реструктуризация
        • 470 11.6.1. Определение конструктора
        • 471 11.6.2. Адаптация библиотеки AjaxWindows.js
        • 473 11.6.3. Задание команд портала
        • 476 11.6.4. Обработке средствами Ajax
        • 477 11.6.5. Выводы
      • 478 11.7. Резюме
    • 479 12. «Живой» поиск с использованием XSLT
      • 480 12.1. Понимание технологий поиска
        • 480 12.1.1. Классический поиск
        • 482 12.1.2. Недостатки использования фреймов и всплывающих окон
        • 483 12.1.3. «Живой» поиск с использованием Ajax и XSLT
        • 484 12.1.4. Возврат результатов клиенту
      • 485 12.2. Код клиентской части сценария
        • 486 12.2.1. Настройка клиента
        • 487 12.2.2. Инициализация процесса
      • 488 12.3. Код серверной части приложения: PHP
        • 489 12.3.1. Создание XML-документа
        • 491 12.3.2. Создание документа XSLT
      • 494 12.4. Объединение документов XSL и XML
        • 496 12.4.1. Совместимость с браузером Microsoft Internet Explorer
        • 496 12.4.2. Совместимость с браузерами Mozilla
      • 497 12.5. Последние штрихи
        • 498 12.5.1. Применение каскадных таблиц стилей
        • 499 12.5.2. Улучшение поиска
        • 501 12.5.3. Использовать ли XSLT
        • 502 12.5.4. Решение проблемы закладок
      • 503 12.6. Реструктуризация
        • 504 12.6.1. Объект XSLTHelper
        • 508 12.6.2. Компонент «живого» поиска
        • 512 12.6.3. Выводы
      • 512 12.7. Резюме
    • 515 13. Создание приложений Ajax, не использующих сервер
      • 516 13.1. Считывание информации из внешнего мира
        • 517 13.1.1. Поиск XML лент
        • 518 13.1.2. Изучение структуры
      • 520 13.2. Богатый пользовательский интерфейс
        • 521 13.2.1.Чтение лент
        • 522 13.2.2. HTML структура без таблиц
        • 525 13.2.3. Гибкое CSS-форматирование
      • 530 13.3. Загрузка RSS-лент
        • 530 13.3.1. Глобальный уровень
        • 532 13.3.2. Предварительная загрузка средствами Ajax
      • 535 13.4. Богатый эффект перехода
        • 536 13.4.1. Правила прозрачности, учитывающие индивидуальность браузеров
        • 536 13.4.2. Реализация затухающего перехода
        • 538 13.4.3. Интеграция таймеров JavaScript
      • 540 13.5. Дополнительные возможности
        • 540 13.5.1. Введение дополнительных лент
        • 542 13.5.2. Интеграция функций пропуска и паузы
      • 545 13.6. Как избежать ограничений проекта
        • 545 13.6.1. Обход системы безопасности браузеров Mozilla
        • 548 13.6.2. Изменение масштаба приложения
      • 548 13.7. Реструктуризация
        • 549 13.7.1. Модель приложения
        • 551 13.7.2. Представление приложения
        • 555 13.7.3. Контроллер приложения
        • 567 13.7.4. Выводы
      • 567 13.8. Резюме
  • 569 V. ПРИЛОЖЕНИЯ
    • 571 А. Инструменты для профессиональной работы с Ajax
      • 572 А.1. Правильный набор инструментов
        • 572 А.1.1. Получение совместимых инструментов
        • 574 А.1.2. Создание собственных инструментов
        • 574 А.1.3. Сопровождение набора инструментов
      • 575 А.2. Редакторы и IDE
        • 575 А.2.1. Что требуется от редактора кода
        • 577 А.2.2. Существующие продукты
      • 582 А.3. Отладчики
        • 582 А.3.1. Для чего нужен отладчик
        • 582 А.3.2. Отладчики JavaScript
        • 587 А.3.3. Отладчики HTTP
        • 589 А.3.4. Создание консоли вывода, встроенной в браузер
      • 592 А.4. Инспекторы DOM
        • 592 А.4.1. Использование DOM Inspector для браузеров Mozilla
        • 594 А.4.2. Инспекторы DOM для браузера Internet Explorer
        • 594 А.4.3. Средство Safari DOM Inspector для Mac OS X
      • 595 А.5. Установка расширений Firefox
      • 597 А.6. Ресурсы
    • 597 Б. JavaScript и объектно-ориентированное программирование
      • 598 Б.1. JavaScript - это не Java
      • 599 Б.2. Объекты в JavaScript
        • 600 Б.2.1. Формирование объектов
        • 604 Б.2.2. Функции-конструкторы, классы и прототипы
        • 606 Б.2.3. Расширение встроенных классов
        • 607 Б.2.4. Наследование прототипов
        • 608 Б.2.5. Отражение в JavaScript-объектах
        • 610 Б.2.6. Интерфейсы и виртуальные типы
      • 613 Б.3. Методы и функции
        • 613 Б.3.1. Функции как независимые элементы
        • 615 Б.3.2. Присоединение функций к объектам
        • 615 Б.3.3. Заимствование функций из других объектов
        • 616 Б.3.4. Обработка событий в Ajax-программах и контексты функций
        • 620 Б.3.5. Замыкания JavaScript
      • 623 Б.4. Выводы
      • 623 Б.5. Ресурсы
    • 625 В. Библиотеки Ajax
    • 639 Предметный указатель

Инструкция как скачать книгу Дейв Крейн, Эрик Паскарелло, Даррен Джеймс: AJAX в действии в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
AJAX в действии
Рейтинг книги:
1 голос
29

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: