SlideShare a Scribd company logo
1 of 49
Service Worker и Вы
Пора регистрировать
Андрей Липатцев
КИБ+РИФ, апрель 2017
vs.
Source: comScore Mobile Metrix, U.S., Age 18+, June 2015
13% 87%
Моб. Веб Приложения
80%ВРЕМЕНИ
в
3 ПРИЛОЖЕНИЯХSource: comScore Mobile Metrix, U.S., Age 18+, June 2015
НОЛЬВ СРЕДНЕМ НОВЫХ
ПРИЛОЖЕНИЙ
В МЕСЯЦ
Source: comScore Mobile Metrix, U.S., Age 18+, June 2015
Функционал
Охват
Функционал
Охват
– это забота о пользователе на
совершенно новом уровне
Progressive Web Apps
Надёжным
Опыт должен быть...
Reliability means never showing
the offline dinosaur
Надёжным Быстрым
Опыт должен быть...
of users abandon sites that take
longer than 3 seconds to load53%
Надёжным Быстрым Глубоким
Опыт должен быть...
Полный
экран, тема,
ориентация
и т.д.
Пуш-
уведомления
Погружение Уведомления
Глубина
Добавление
на главный
экран
Экран
Надёжные Быстрые Глубокие
Progressive Web Apps –
С чего начать?
Безопасность
Service Worker
Service Workers – прокси на клиенте
Service worker
(на Javascript)
Кэш
Веб-сервер
Жизнь Service Worker
• Страница как приложение
• Просыпается по команде OS
• Только системные события
Activated Error
Idle
Active Terminated
Install
Register
Service Worker
для ВТОРОГО захода
Создание простого Service Worker
Регистрация Service Worker
Activated Error
Idle
Active Terminated
Install
Register
Регистрация Service Worker
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(function(reg) {
console.log('Service Worker Registered', reg);
})
.catch(function(err) {
console.log('Error registering Service Worker', err);
});
}
Регистрация Service Worker
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(function(reg) {
console.log('Service Worker Registered', reg);
})
.catch(function(err) {
console.log('Error registering Service Worker', err);
});
}
Добавить Event Handler для установки
Activated Error
Idle
Active Terminated
Install
Register
Pre-fetch ресурсов приложения
var cacheName = 'app-shell-cache-v1';
var filesToCache = ['/', '/index.html', ...];
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(cacheName).then(function(cache) {
return cache.addAll(filesToCache);
}).then(function() {
return self.skipWaiting();
})
);
});
Pre-fetch ресурсов приложения
var cacheName = 'app-shell-cache-v1';
var filesToCache = ['/', '/index.html', ...];
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(cacheName).then(function(cache) {
return cache.addAll(filesToCache);
}).then(function() {
return self.skipWaiting();
})
);
});
Pre-fetch ресурсов приложения
var cacheName = 'app-shell-cache-v1';
var filesToCache = ['/', '/index.html', ...];
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(cacheName).then(function(cache) {
return cache.addAll(filesToCache);
}).then(function() {
return self.skipWaiting();
})
);
});
Добавить Event Handler для активации
Activated Error
Idle
Active Terminated
Install
Register
Добавить Event Handler для activate
self.addEventListener('activate', function(e) {
e.waitUntil(
caches.keys().then(function(keyList) {
return Promise.all(keyList.map(function(key) {
if (key !== cacheName) {
return caches.delete(key);
}
}));
})
);
return self.clients.claim();
});
Почти готово...
Activated Error
Idle
Active Terminated
Install
Register
Добавить Event Handler для fetch
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
Добавить Event Handler для fetch
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
Добавить Event Handler для fetch
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
Добавить Event Handler для fetch
self.addEventListener('fetch', function(e) {
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
Ready to Go!
Activated Error
Idle
Active Terminated
Install
Register
Scope
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(function(reg) {
console.log('Service Worker Registered', reg);
})
.catch(function(err) {
console.log('Error registering Service Worker', err);
});
}
Scope
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/scripts/s-worker.js')
.then(function(reg) {
console.log('Service Worker Registered', reg);
})
.catch(function(err) {
console.log('Error registering Service Worker', err);
});
}
Стратегии кэширования
сеть контролируешь ТЫ
Сначала Кэш, потом Сеть
Сначала Сеть, потом Кэш
Кэш и Сеть
Фол-бэк на Кэш
Стратегии кэширования всем!
Service Workers
обеспечивают работу
Progressive Web Apps
https://developers.google.com/web/progressive-web-apps/
https://codelabs.developers.google.com/?cat=Web
https://jakearchibald.com/2014/offline-cookbook/
Айда
кодить!
мяу!

More Related Content

More from Mediaprojects Mail.Ru Group

Что и когда случается на сайтах по данным мониторинга
Что и когда случается на сайтах по данным мониторингаЧто и когда случается на сайтах по данным мониторинга
Что и когда случается на сайтах по данным мониторингаMediaprojects Mail.Ru Group
 
Особенности поисковой оптимизации Медиапроектов Mail.Ru Group
Особенности поисковой оптимизации Медиапроектов Mail.Ru GroupОсобенности поисковой оптимизации Медиапроектов Mail.Ru Group
Особенности поисковой оптимизации Медиапроектов Mail.Ru GroupMediaprojects Mail.Ru Group
 
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиториейПрекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиториейMediaprojects Mail.Ru Group
 
Монетизация СМИ через продажу подписки. От привлечения до удержания
Монетизация СМИ через продажу подписки. От привлечения до удержанияМонетизация СМИ через продажу подписки. От привлечения до удержания
Монетизация СМИ через продажу подписки. От привлечения до удержанияMediaprojects Mail.Ru Group
 
Как мы запустили PayWall и никто не умер
Как мы запустили PayWall и никто не умерКак мы запустили PayWall и никто не умер
Как мы запустили PayWall и никто не умерMediaprojects Mail.Ru Group
 
Внимание аудитории: почему медиа нужно за него бороться и как это делать
Внимание аудитории: почему медиа нужно за него бороться и как это делатьВнимание аудитории: почему медиа нужно за него бороться и как это делать
Внимание аудитории: почему медиа нужно за него бороться и как это делатьMediaprojects Mail.Ru Group
 
Медиа о бизнесе — как бизнес. На примере vc.ru
Медиа о бизнесе — как бизнес. На примере vc.ruМедиа о бизнесе — как бизнес. На примере vc.ru
Медиа о бизнесе — как бизнес. На примере vc.ruMediaprojects Mail.Ru Group
 
О подписной модели интернет-издания Slon.ru
О подписной модели интернет-издания Slon.ru О подписной модели интернет-издания Slon.ru
О подписной модели интернет-издания Slon.ru Mediaprojects Mail.Ru Group
 
Интернет-издания без сайта
Интернет-издания без сайтаИнтернет-издания без сайта
Интернет-издания без сайтаMediaprojects Mail.Ru Group
 
Как создать и раскрутить продукт с помощью фанатов и силы соцсетей
Как создать и раскрутить продукт с помощью фанатов и силы соцсетейКак создать и раскрутить продукт с помощью фанатов и силы соцсетей
Как создать и раскрутить продукт с помощью фанатов и силы соцсетейMediaprojects Mail.Ru Group
 
Messenger First. Боты для контентных проектов
Messenger First. Боты для контентных проектовMessenger First. Боты для контентных проектов
Messenger First. Боты для контентных проектовMediaprojects Mail.Ru Group
 
Привлечение аудитории с помощью контент-маркетинга: опыт МДК
Привлечение аудитории с помощью контент-маркетинга: опыт МДК Привлечение аудитории с помощью контент-маркетинга: опыт МДК
Привлечение аудитории с помощью контент-маркетинга: опыт МДК Mediaprojects Mail.Ru Group
 
AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...
AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...
AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...Mediaprojects Mail.Ru Group
 
«Локализованный контент: работа с региональными редакциями и локальной продаж...
«Локализованный контент: работа с региональными редакциями и локальной продаж...«Локализованный контент: работа с региональными редакциями и локальной продаж...
«Локализованный контент: работа с региональными редакциями и локальной продаж...Mediaprojects Mail.Ru Group
 
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиториейПрекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиториейMediaprojects Mail.Ru Group
 
Женские СМИ и социальные сети: опыт Cosmopolitan
Женские СМИ и социальные сети: опыт CosmopolitanЖенские СМИ и социальные сети: опыт Cosmopolitan
Женские СМИ и социальные сети: опыт CosmopolitanMediaprojects Mail.Ru Group
 
Хитрые таргетинги для коммерческих спецпроектов
Хитрые таргетинги для коммерческих спецпроектовХитрые таргетинги для коммерческих спецпроектов
Хитрые таргетинги для коммерческих спецпроектовMediaprojects Mail.Ru Group
 
Создание вирального контента и работа с блогерами
Создание вирального контента и работа с блогерамиСоздание вирального контента и работа с блогерами
Создание вирального контента и работа с блогерамиMediaprojects Mail.Ru Group
 
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиямFacebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиямMediaprojects Mail.Ru Group
 
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиямFacebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиямMediaprojects Mail.Ru Group
 

More from Mediaprojects Mail.Ru Group (20)

Что и когда случается на сайтах по данным мониторинга
Что и когда случается на сайтах по данным мониторингаЧто и когда случается на сайтах по данным мониторинга
Что и когда случается на сайтах по данным мониторинга
 
Особенности поисковой оптимизации Медиапроектов Mail.Ru Group
Особенности поисковой оптимизации Медиапроектов Mail.Ru GroupОсобенности поисковой оптимизации Медиапроектов Mail.Ru Group
Особенности поисковой оптимизации Медиапроектов Mail.Ru Group
 
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиториейПрекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
 
Монетизация СМИ через продажу подписки. От привлечения до удержания
Монетизация СМИ через продажу подписки. От привлечения до удержанияМонетизация СМИ через продажу подписки. От привлечения до удержания
Монетизация СМИ через продажу подписки. От привлечения до удержания
 
Как мы запустили PayWall и никто не умер
Как мы запустили PayWall и никто не умерКак мы запустили PayWall и никто не умер
Как мы запустили PayWall и никто не умер
 
Внимание аудитории: почему медиа нужно за него бороться и как это делать
Внимание аудитории: почему медиа нужно за него бороться и как это делатьВнимание аудитории: почему медиа нужно за него бороться и как это делать
Внимание аудитории: почему медиа нужно за него бороться и как это делать
 
Медиа о бизнесе — как бизнес. На примере vc.ru
Медиа о бизнесе — как бизнес. На примере vc.ruМедиа о бизнесе — как бизнес. На примере vc.ru
Медиа о бизнесе — как бизнес. На примере vc.ru
 
О подписной модели интернет-издания Slon.ru
О подписной модели интернет-издания Slon.ru О подписной модели интернет-издания Slon.ru
О подписной модели интернет-издания Slon.ru
 
Интернет-издания без сайта
Интернет-издания без сайтаИнтернет-издания без сайта
Интернет-издания без сайта
 
Как создать и раскрутить продукт с помощью фанатов и силы соцсетей
Как создать и раскрутить продукт с помощью фанатов и силы соцсетейКак создать и раскрутить продукт с помощью фанатов и силы соцсетей
Как создать и раскрутить продукт с помощью фанатов и силы соцсетей
 
Messenger First. Боты для контентных проектов
Messenger First. Боты для контентных проектовMessenger First. Боты для контентных проектов
Messenger First. Боты для контентных проектов
 
Привлечение аудитории с помощью контент-маркетинга: опыт МДК
Привлечение аудитории с помощью контент-маркетинга: опыт МДК Привлечение аудитории с помощью контент-маркетинга: опыт МДК
Привлечение аудитории с помощью контент-маркетинга: опыт МДК
 
AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...
AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...
AMP: лучше ускориться. Основы и преимущества технологии, давшей второе дыхани...
 
«Локализованный контент: работа с региональными редакциями и локальной продаж...
«Локализованный контент: работа с региональными редакциями и локальной продаж...«Локализованный контент: работа с региональными редакциями и локальной продаж...
«Локализованный контент: работа с региональными редакциями и локальной продаж...
 
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиториейПрекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
Прекрасная половина Одноклассников: как соцсеть работает с женской аудиторией
 
Женские СМИ и социальные сети: опыт Cosmopolitan
Женские СМИ и социальные сети: опыт CosmopolitanЖенские СМИ и социальные сети: опыт Cosmopolitan
Женские СМИ и социальные сети: опыт Cosmopolitan
 
Хитрые таргетинги для коммерческих спецпроектов
Хитрые таргетинги для коммерческих спецпроектовХитрые таргетинги для коммерческих спецпроектов
Хитрые таргетинги для коммерческих спецпроектов
 
Создание вирального контента и работа с блогерами
Создание вирального контента и работа с блогерамиСоздание вирального контента и работа с блогерами
Создание вирального контента и работа с блогерами
 
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиямFacebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
 
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиямFacebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
Facebook Instant Articles и Google AMP: что это и зачем онлайн-изданиям
 

Service Worker и вы. Пора регистрировать