SlideShare a Scribd company logo
Underground
Underground
Background!
Javascript
Однопоточен
● рисует UI
● запускает скрипты
Все хорошо
Пока начальник не сказал
1 + 2 + 3 + … n
Это же просто
Конечно просто
WEB WORKERS
for the
WIN
Подождите!
● window
● DOM
● document
● parent
Нет доступа
● web page
● web worker
Parallel.JS
Client-Server
● client
● servers
Client-Worker
● master HTML
● workers
Use cases
Background js
@lvivjs 2014
Service Workers
Service Workers
Запустит скрипт в бекграунде,
отдельно от страницы
Service Workers
● Запускаются в собственном контексте
● Не привязан к одной странице
● Нет доступа к DOM
● Может существовать вообще без страниц
● Запускается и дестроится когда надо
● Определенна модель обновления
● Только https
Но, Service Workers
● Ускорение
● Offline
● Push уведомления
● Background синхронизация
Для чего нужен
Начнем
No service workers
● Обновлеям файл
○ Браузер загружает SW, и если хотя бы 1 байт
изменен этот файл считается новым
● SW инсталируется
● Старый SW отрабатывает
● А после закрытия старый SW умирает
● После этого новый SW получает контроль
Обновление
Практика
Background js
● Итеративные запросы к GD
● Если GD не отвечает
○ Берем данные из кеша
○ Генерируем данные и возвращаем
Сеть
Background js
Background js
Новая сеть
Подходы
Assets
Browser ActivateInstall
Network Cache
Background js
Чистим кэш
Browser ActivateInstall
DELETE Cache
Background js
Реагируем на
пользователей
Browser NetworkClick
Cache
Background js
DRAFT!!!
Только кеш
Только сеть
Сначала кеш
Если нет сети,
то кеш
Кастомные
ответы
Whatever...
● LocalStorage
● IndexedDB
● Filesystem
● Caches
Откуда место?
Не специфицированная информация
А сколько его?
navigator.webkitTemporaryStorage.queryUsageAndQuota
navigator.webkitTemporaryStorage.requestQuota
Push нотификации
Background sync
● Request sync
● Periodic sync
Links
Вот и все

More Related Content

Background js