Как whatsappweb доставляет обновления?

#reactjs #caching #webpack #updates #whatsapp

#reactjs #кэширование #webpack #Обновления #whatsapp

Вопрос:

Мне интересно, как whatsappweb доставляет обновления? Вы когда-нибудь замечали, что иногда появляется левая зеленая карточка с просьбой щелкнуть ссылку на страницу обновления и запустить новый обновленный код whatsappweb.

Я почти уверен, что они используют webpack, сервисных работников и т. Д.

Скорее всего, у вас уже были проблемы с кэшем при использовании webpack, когда даже при обновлении страницы он остается в кэше. Итак, как whatsappweb решил эту проблему с помощью одной ссылки на обновление?

Ответ №1:

Они используют service worker, если service worker обновляется, они запускают что-то в приложении react, это легко сделать.

   serviceWorker.register({ onUpdate: () => {console.log('new service worker')}});
  

просто отправьте что-нибудь вместо console.log

Ответ №2:

Webpack — это инструмент для создания и нигде не используется на живом сайте. Хотя он предлагает горячую перезагрузку модуля для сервера разработки, вы не получите его в рабочей версии.

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

Если вы действительно хотите мгновенные обновления (не дожидаясь, пока пользователь обновит страницу), вы можете создать какое-то сообщение WebSocket, которое при получении сообщения запускает обновление браузера. Ничего особенного и никаких задействованных механизмов развертывания.