Pull to refresh

Comments 13

Спасибо. Можно посмотреть полный код SW?
В моём проекте (СRA) SW генерировался Workbox-ом, поэтому я лишь добавлял приведённый код в конфигурацию serviceWorker.js

Шутка хороша, посмеялся.


Вот только в пятницу в очередной раз разбирался со сломавшимся обновлением. Сервис воркеры это конечно оч мощная технология, но чет совсеееем не очевидная, слишком уж низкоуровневое апи предоставлено.

Как по мне, её главный недостаток это непроработанная документация.

Спасибо за статью, только я так и не понял в чём смысл шутки. Кстати, я слышал другую ее версию: переименовал сервис-воркер — пора менять домен.

Как и в вашей версии, смысл в том, что по этому домену теперь поломанный сайт как его не обновляй :)
Спасибо за опыт! Несколько лет назад тоже в продакшене использовал сервис воркеры. При доставки обновлений тоже показывал такое окно в углу экрана с двумя кнопками («обновить» и «отложить»), и еще с обратным таймером, по истечении которого автоматически обновлялось приложение. Дело в том, что клиенты вообще не нажимали никаких других кнопок, кроме тех, которые нужны им были для обработки заказов (менталитет видимо) и почти никогда не закрывали браузер и не перезагружали страницу, а обновления доставлять нужно было :)
Позже планировали добавить возможность принудительно обновить на клиентах без таймера.
Основная цели добавления сервис воркеров были: принудительные обновления клиентов и быстрая загрузка приложения. Цели были достигнуты, заказчики были довольны.

Так как я использовал коробочный сервис воркер Ангуляра, в одной из версий (5-ой кажется), сломали сервис воркер так, что закешированный index.html не отдавался сервис воркером корректно, работа была парализованы до сброса браузера. Позже чтобы не натыкаться на эту штуку я просто добавлял в кеш все нужные файлы за исключением index.html. Целям это никак не противоречило, так как страница очень мало весит, но зато даже если сервис воркер ломался, но после F5 работало железно всегда.
Спасибо за интересный кейс :)

На начальном этапе у меня тоже была идея исключить из кэша index.html, если хочется «починить» перезагрузку страницы — это хороший вариант.
Тимур, статья — огонь! Спасибо за неё!
А чего конкретно не хватает в документации по PWA, скажем, на web.dev? Очень хотелось бы знать, над чем работать в 2021-м.
И не хочу здесь спамить ссылкой без разрешения, но было бы здорово видеть Вас в нашем ТГ сообществе PWA, если Вы ещё не там ;) Если разрешите, с удовольствием приглашу и Вас, и всех читателей.
Мой главный вопрос к документации по PWA в том, что обновление SW это целая техника и нужно до неё ещё докопаться. Я бы в целом тему lifecycle (обновления) PWA вынес бы в категорию или статью следующую сразу за созданием PWA. Но это моё личное мнение :)
Да, конечно. В том и дело, что с проблемой ты сталкиваешься раньше чем с этой статьёй, особенно если используешь Workbox

А если использовать проверку на соединение и подгружать все ресурсы из памяти, когда интернет соединение отсутствует, но в ином случае всегда его скачивать?
Или же анализировать разницу в размере страницы и если такая имеется, то грузить новую версию?

Sign up to leave a comment.

Articles