#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, которое при получении сообщения запускает обновление браузера. Ничего особенного и никаких задействованных механизмов развертывания.