Опубликовано

Новинка: “Web API. Сборник рецептов”

Web API. Сборник рецептов

Книга посвящена разработке современных веб-приложений с использованием JavaScript и встроенных возможностей браузера на основе Web API. Приведены практические примеры реализации функций, которые ранее требовали сторонних плагинов: диалоговые окна, работа с геолокацией и другими возможностями, предоставляемыми браузером. Освещаются как устоявшиеся, так и находящиеся в стадии разработки API-интерфейсы, позволяющие создавать мощные и интерактивные веб-приложения, глубоко интегрированные с устройствами пользователей. Рассматривается, как браузеры реализуют модель разрешений для предоставления доступа к таким функциям, как геолокация и push-уведомления. Каждая задача в книге сопровождается готовыми рецептами, содержащими описание проблемы, решение с пояснениями и расширенное обсуждение. Книга ориентирована на программистов с опытом работы на JavaScript, знакомых с программным интерфейсом DOM (Document Object Model).

Для программистов

Повысьте уровень JavaScript-приложений

JavaScript предоставляет веб-разработчикам богатый арсенал средств для создания динамичных и интерактивных пользовательских интерфейсов прямо в браузере. Сегодня большую часть этой функциональности обеспечивают сами браузеры.

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

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

Полученные знания пригодятся вам в проектах любой сложности — от личных до корпоративных.

  • Добавьте веб-приложениям функции, схожие с возможностями современных браузеров
  • Познакомьтесь с широким набором инструментов, предлагаемых актуальными браузерными API
    • Изучите перспективные API-интерфейсы, находящиеся в стадии разработки
  • Используйте новые элементы интерфейса, такие как диалоговые окна, без подключения сторонних библиотек
    • Создавайте мощные и интерактивные приложения с глубокой интеграцией в возможности пользовательских устройств
  • Изучите реализуемую браузерами модель разрешений для предоставления доступа к таким функциям, как геолокация и push-уведомления

Книгу “Web API. Сборник рецептов: Повысьте уровень JavaScript-приложений” можно купить в нашем интенет-магазине.

Предисловие. 13

Возможности современных браузеров. 14

Недостатки сторонних библиотек. 14

Для кого предназначена эта книга. 14

Что содержится в этой книге. 15

Дополнительные ресурсы.. 15

Соглашения об используемых обозначениях. 16

Использование примеров кода. 17

Платформа онлайн-обучения O’Reilly. 18

Как с нами связаться. 18

Благодарности. 18

ГЛАВА 1. Асинхронные API. 21

1.0. Введение. 21

1.1. Работа с промисами. 22

1.2. Загрузка изображения с помощью использования резервного изображения (fallback) 24

1.3. Связывание промисов. 26

1.4. Использование ключевых слов  async и await 28

1.5. Параллельное использование промисов. 29

1.6. Анимация элемента с помощью  requestAnimationFrame. 30

1.7. Обертывание событий API в промис. 33

ГЛАВА 2. Простое сохранение данных с помощью Web Storage API. 36

2.0. Введение. 36

2.1. Проверка поддержки Web Storage. 38

2.2. Сохранение строковых данных. 39

2.3. Сохранение простых объектов. 40

2.4. Сохранение сложных объектов. 41

2.5. Отслеживание изменений в хранилище. 46

2.6. Поиск всех известных ключей. 47

2.7. Удаление данных. 49

ГЛАВА 3. URL-адреса и маршрутизация. 51

3.0. Введение. 51

3.1. Определение относительного URL-адреса. 52

3.2. Удаление параметров запроса из URL-адреса. 54

3.3. Добавление параметров запроса к URL-адресу. 56

3.4. Чтение параметров запроса. 58

3.5. Создание простого маршрутизатора  на стороне клиента. 60

3.6. Сопоставление URL-адресов с шаблонами. 62

ГЛАВА 4. Сетевые запросы.. 65

4.0. Введение. 65

4.1. Отправка запроса с помощью XMLHttpRequest 66

4.2. Отправка GET-запроса с помощью Fetch API 67

4.3. Отправка POST-запроса с помощью Fetch API 69

4.4. Загрузка файла с помощью Fetch API 70

4.5. Отправка Beacon. 71

4.6. Прослушивание удаленных событий  с помощью server-sent events. 72

4.7. Обмен данными с WebSockets  в режиме реального времени. 74

ГЛАВА 5. База данных IndexedDB.. 77

5.0. Введение. 77

5.1. Создание, чтение и удаление объектов  в базе данных. 79

5.2. Обновление существующей базы данных. 85

5.3. Выполнение запросов с использованием индексов. 87

5.4. Поиск строковых значений с помощью курсора. 90

5.5. Разбивка большого набора данных на страницы.. 92

5.6. Использование промисов  с IndexedDB API 94

ГЛАВА 6. Наблюдение за элементами DOM… 97

6.0. Введение. 97

6.1. Отложенная загрузка изображения при прокрутке. 99

6.2. Обертывание IntersectionObserver промисом.. 101

6.3. Автоматическая пауза при воспроизведении видео. 102

6.4. Анимация изменений высоты.. 103

6.5. Изменение содержимого элемента  в зависимости от размера. 105

6.6. Применение перехода  в момент появления элемента в поле зрения. 107

6.7. Использование режима бесконечной прокрутки. 108

ГЛАВА 7. Формы.. 110

7.0. Введение. 110

7.1. Заполнение поля формы из локального хранилища. 111

7.2. Отправка формы с помощью Fetch и FormData API 112

7.3. Отправка формы в формате JSON.. 114

7.4. Создание обязательного поля формы.. 116

7.5. Ограничения при вводе числа. 117

7.6. Определение шаблона валидации. 118

7.7. Валидация формы.. 119

7.8. Применение пользовательской логики валидации. 122

7.9. Проверка группы флажков. 124

7.10. Асинхронная проверка поля формы.. 127

ГЛАВА 8. API веб-анимации. 130

8.0. Введение. 130

8.1. Применение эффекта “пульсации”  при нажатии кнопки. 132

8.2. Запуск и остановка анимации. 135

8.3. Анимация вставки и удаления элементов DOM.. 136

8.4. Реверсирование анимации. 137

8.5. Отображение индикатора прокрутки. 141

8.6. Создание подпрыгивающего элемента. 143

8.7. Одновременный запуск нескольких анимаций. 144

8.8. Отображение анимации загрузки. 146

8.9. Соблюдение в анимации  предпочтений пользователя. 148

ГЛАВА 9. Web Speach API. 150

9.0. Введение. 150

9.1. Добавление продиктованного текста  в текстовое поле. 152

9.2. Создание Promise-помощника  для распознавания речи. 155

9.3. Получение доступных голосов. 156

9.4. Синтез речи. 157

9.5. Настройка параметров синтеза речи. 159

9.6. Автоматическая приостановка речи. 160

ГЛАВА 10. Работа с файлами. 161

10.0. Введение. 161

10.1. Загрузка текста из файла. 161

10.2. Загрузка изображения из URL-адреса данных. 164

10.3. Загрузка видео  в качестве URL-адреса объекта. 166

10.4. Загрузка изображения с помощью перетаскивания. 167

10.5. Проверка и запрос разрешений. 170

10.6. Экспорт данных API в файл. 171

10.7. Экспорт данных API со ссылкой  для скачивания. 173

10.8. Загрузка файла с помощью перетаскивания. 175

ГЛАВА 11. Интернационализация. 177

11.0. Введение. 177

11.1. Форматирование даты.. 178

11.2. Получение частей отформатированной даты.. 178

11.3. Форматирование относительной даты.. 179

11.4. Форматирование чисел. 181

11.5. Округление знаков после точки. 182

11.6. Форматирование ценового диапазона. 183

11.7. Форматирование единиц измерения. 184

11.8. Применение правил плюрализации. 184

11.9. Подсчет символов, слов и предложений. 186

11.10. Форматирование списков. 187

11.11. Сортировка массива имен. 188

ГЛАВА 12. Веб-компоненты.. 190

12.0. Введение. 190

12.1. Создание компонента  для отображения сегодняшней даты.. 193

12.2. Создание компонента  для форматирования пользовательской даты.. 194

12.3. Создание компонента обратной связи. 196

12.4. Создание компонента профильной карточки. 200

12.5. Создание компонента изображения  с отложенной загрузкой. 202

12.6. Создание компонента раскрытия информации. 204

12.7. Создание стилизованного компонента кнопки. 207

ГЛАВА 13. Элементы интерфейса пользователя. 211

13.0. Введение. 211

13.1. Создание диалогового окна  предупреждения. 212

13.2. Создание диалогового окна подтверждения. 215

13.3. Создание веб-компонента  диалогового окна подтверждения. 218

13.4. Использование элемента раскрытия информации. 220

13.5. Отображение всплывающего окна. 222

13.6. Ручное управление всплывающим окном.. 223

13.7. Позиционирование всплывающего окна  относительно элемента. 224

13.8. Отображение всплывающей подсказки. 227

13.9. Отображение уведомления. 229

ГЛАВА 14. Интеграция устройств. 231

14.0. Введение. 231

14.1. Считывание состояния батареи. 231

14.2. Считывание состояния сети. 234

14.3. Определение местоположения устройства. 235

14.4. Отображение местоположения устройства  на карте. 237

14.5. Копирование и вставка текста. 238

14.6. Совместное использование контента  с помощью Web Share API 241

14.7. Создание вибрации устройства. 242

14.8. Настройка ориентации устройства. 243

ГЛАВА 15. Измерение производительности. 245

15.0. Введение. 245

15.1. Измерение производительности загрузки страниц. 246

15.2. Измерение эффективности  использования ресурсов. 247

15.3. Поиск самых медленных ресурсов. 247

15.4. Определение тайминга для конкретного ресурса. 248

15.5. Профилирование производительности  рендеринга. 249

15.6. Профилирование многоэтапных задач. 251

15.7. Прослушивание показателей производительности. 253

ГЛАВА 16. Работа с консолью… 255

16.0. Введение. 255

16.1. Стилизации вывода консоли. 255

16.2. Использование уровней в журналах сообщений. 256

16.3. Создание именованных регистраторов. 257

16.4. Отображение массива объектов  в таблице. 258

16.5. Использование консольных таймеров. 260

16.6. Использование консольных групп. 261

16.7. Использование счетчиков. 263

16.8. Регистрация переменной и ее значения. 264

16.9. Протоколирование трассировки стека. 265

16.10. Проверка ожидаемых значений. 266

16.11. Изучение свойств объекта. 267

ГЛАВА 17. CSS. 269

17.0. Введение. 269

17.1. Выделение текстовых областей. 269

17.2. Предотвращение появления текста  без стилизации. 272

17.3. Анимация переходов DOM.. 274

17.4. Изменение таблиц стилей во время выполнения. 276

17.5. Условная установка CSS-класса. 277

17.6. Соответствие медиазапросам.. 277

17.7. Получение вычисленного стиля элемента. 278

ГЛАВА 18. Медиа. 281

18.0. Введение. 281

18.1. Запись экрана. 281

18.2. Захват изображения с камеры пользователя. 284

18.3. Захват видео с камеры пользователя. 286

18.4. Определение возможностей  системной поддержки медиа. 288

18.5. Применение видеофильтров. 290

ГЛАВА 19. Заключительные замечания. 292

19.0. Введение. 292

19.1. В защиту сторонних библиотек. 292

19.2. Определяйте функции, а не версии браузера. 292

19.3. Полифилы.. 293

19.4. Заглядывая в будущее. 293

Предметный указатель. 296

Об авторе. 302

Об изображении на обложке. 303

Добавить комментарий