Устройство браузера и совместимость
HTTP в браузере, CORS, cookies, хранилища, workers, разрешения, прогрессивное улучшение и различия браузеров.
Материалы
- Manifest и установка учебника
Описываем приложение в manifest, задаём стартовую страницу и область навигации и проверяем условия установки с учётом различий браузеров.
- Жизненный цикл service worker
Регистрируем учебный worker, различаем установку, активацию и управление страницей и определяем область запросов до добавления кеширования.
- Первая страница без сети
Сохраняем один учебный HTML-документ, возвращаем точное совпадение при сетевой ошибке и отделяем запасное сообщение от настоящего HTTP 404.
- Сохранение выбранных глав
Добавляем явный выбор материалов, запись HTML в Cache API и честный статус сохранения после успешного завершения операции.
- Обновление офлайн-учебника
Разбираем новый кеш, ожидающий worker и безопасную связь версии страницы с реально управляющим обработчиком.
- Матрица сценариев офлайн-приложения
Составляем воспроизводимые условия проверки установки, навигации, сохранения и обновления без выдуманных результатов браузерных испытаний.
- Согласованность HTML и ресурсов
Готовим отдельный кандидат пакета HTML, CSS и изображения; переключаем выбранную копию только после полного сохранения обязательных ресурсов.
- Размер и состав кеша
Отделяем выбранный набор от всей библиотеки, считаем размеры тел ответов и вводим мягкий бюджет без обещания точной браузерной квоты.
- Миграция локальных данных
Добавляем настройки в IndexedDB версии2, сохраняем существующие закладки и обрабатываем блокировку обновления другой вкладкой.
- Прерванная загрузка материалов
Сохраняем завершённые ресурсы незаконченного кандидата, отменяем foreground-запрос и продолжаем подготовку без ложного ready.
- Обновление в нескольких вкладках
Предлагаем явное переключение ожидающего worker, избегаем автоматического reload всех окон и сохраняем доступ к versioned-ресурсам прежних страниц.
- Восстановление повреждённого кеша
Различаем старый и неполный пакет, читаем его описатель и восстанавливаем выбранную копию без удаления закладок и всех данных origin.
- Квоты и вытеснение локальных данных
Показываем приблизительный расход хранения, запрашиваем persistent storage по действию читателя и сохраняем понятное поведение при отказе в записи и потере данных.