Комментарии 32
А ведь можно же предлагать подписку на второй или третий заход пользователя на сайт, когда уже понятно, что он тут не случайно.
Золотые слова.
Действительно не понятно зачем на каждом сайте эти уведомления, особенно раздражает когда еще даже контент не загрузился, а уже «Хотите получать уведомления с ......com».
Блин, да еще не успел понять, что есть полезного на этом сайте.
Блин, да еще не успел понять, что есть полезного на этом сайте.
Что-то я походу не понимаю, с каких пор обработчка запросов на клиенте стала революцией? Я не сильно опытный разработчик, но знаю что Angular или React позволяет делать достаточно большое колличество вещей на клиенте, так в чем тогда отличие PWA от обычного фреймворка? Название?
Можно ли держать потяжелее файлы в PWA, чем пару JS файлов и HTML?
Скажем пару гигабайт музыки
Наверно можно. Но тут все зависит от вашей этики. Позволит ли вам ваша совесть засрать своей музыкой пару гигабайт клиентской памяти?
Да нет, я думал можно ли написать музыкальный плеер на PWA. Кажется пока нет :)
Не так давно я мониторил место на диске и обнаружил 4гб папку в профиле хрома — indexeddb от my.mail.ru. При этом я даж хз когда я туда заходил.
НЛО прилетело и опубликовало эту надпись здесь
Это для десктопных браузеров. У мобилок, насколько я понимаю, считается по проценту свободной памяти.
Limitations compared with native iOS apps
The app can store offline data and files only up to 50 Mb
What PWAs can do on Android and not on iOS
On Android you can store more than 50 Mb
PWA IOS
The app can store offline data and files only up to 50 Mb
What PWAs can do on Android and not on iOS
On Android you can store more than 50 Mb
PWA IOS
Chrome <6% of free space
Firefox <10% of free space
Safari <50MB
IE10 <250MB
Edge Dependent on volume size
На 02.07.2018
Firefox <10% of free space
Safari <50MB
IE10 <250MB
Edge Dependent on volume size
На 02.07.2018
Подскажите как обновить кеш файлов программно? Например вышла новая версия аппа, но из-за сервис воркеров даже при очистке Кеша показывает старую версию
Если коротко, то скажите SW сначала обращаться на сервер, а потом уже в кэш, и тогда проблема по идее должна решиться.
Если долго и самостоятельно, то: developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook
Если ещё чуть дольше, но с чужой помощью и примерами, то: stackoverflow.com/search?q=service+worker+update
UPD: от автора этой самой статьи чуть более ранний материал по теме: habr.com/post/358060
Если долго и самостоятельно, то: developers.google.com/web/fundamentals/instant-and-offline/offline-cookbook
Если ещё чуть дольше, но с чужой помощью и примерами, то: stackoverflow.com/search?q=service+worker+update
UPD: от автора этой самой статьи чуть более ранний материал по теме: habr.com/post/358060
Просто меняете название кэша в sw.js — тогда всё начнет записываться в новый кэш, старый останется (можно удалить явно). Это стандартный вариант от Гугла.
Или более интеллектуальные варианты — как по ссылке выше.
Это если у вас кэш SW. Но не надо забывать и про кэш браузера — старые ресурсы могут браться оттуда, для программера эти два независимых кэша часто головную боль доставляют. Я, чтобы не мучиться, кэш браузера для SW приложений просто отключаю (HTTP заголовками ответа сервера, в .htaccess).
Удалите Cache в Chrome DevTools -> Application. Если приложение не обновилось, то это файлы из кэша браузера. Это также видно во вкладке Network — источник ресурсов.
Или более интеллектуальные варианты — как по ссылке выше.
Это если у вас кэш SW. Но не надо забывать и про кэш браузера — старые ресурсы могут браться оттуда, для программера эти два независимых кэша часто головную боль доставляют. Я, чтобы не мучиться, кэш браузера для SW приложений просто отключаю (HTTP заголовками ответа сервера, в .htaccess).
Удалите Cache в Chrome DevTools -> Application. Если приложение не обновилось, то это файлы из кэша браузера. Это также видно во вкладке Network — источник ресурсов.
Сервис воркер каждый раз сравнивается побайтово. Если есть различия, вызывается событие activate. Так что просто меняете номер версии и все.
var version = 3,
oldAppShell = 'appShell-'+(version-1),
appShell = 'appShell-'+version;
self.addEventListener('activate', function(e) {
e.waitUntil(
caches.delete(oldAppShell).open(appShell).then(function(cache) {
return cache.addAll(appShell);
}).catch(function(err){console.log(err);})
);
});
Из личного опыта можно вспомнить, как после перевода одного новостного сайта на работу с Service Worker, было решено отказаться от Андроид приложения, сделанного по функционалу сайта. И не столько потому, что его поддержка занимала человеческие ресурсы, а потому, что PWA версия, как ни удивительно, была быстрее, красивее и удобнее в работе, чем java приложение.
А с этого места можно поподробнее? Можно и в личку :) Мы бы про такой кейс с огромным удовольствием всем рассказали.
Developers_Relations FYI
Во второй части постараюсь именно эту практику изложить, как время будет.
А не в курсе, как оно (PWA) работает с keybord events? Т.е. по сути: можно ли на PWA написать приложение которое сможет реагировать как нативное на ovveride onKeyDown? (цель — подкючить сканер ШК, который в андроиде определяется как хардварная клава).
Также как обычная HTML-Javascript-CSS страница. Всё, что можно одному, можно и другому. Возможно Google будет давать PWA дополнительные разрешения со временем.
У service worker'а нет доступа к DOM. Он может только отвечать на сообщения из основного потока. В нем ловим event, пушим сообщение и данные в воркер, он обрабатывает и возвращает данные.
На самом деле у PWA будет намного больше разрешений. Google забросила свои Chrome Apps ради PWA, и разрешений у этих приложений будет немало, подобно Chrome Apps
https://developer.chrome.com/apps/declare_permissions
https://developer.chrome.com/apps/declare_permissions
Дополню раз такая пьянка whatwebcando.today
Статья, для ликбеза отличная. Спасибо за материал, и правда вдохновляет и мотивирует развивать идею PWA. Не понятно только, где автор так нагрешил? :-)
XXX версия, как ни удивительно, была быстрее, красивее и удобнее в работе, чем java приложение.
Где-то это я уже слышал.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
PWA — это просто