workbox-webpack-plugin - как загружать ресурсы только когда пользователь устанавливает мое приложение? - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь сделать мой SPA установленным на мобильных телефонах. Он не должен быть полностью автономным, потому что в любом случае ему нужно будет извлекать данные, но я хочу кэшировать все состояния c (JS, CSS, значки).

I нашел workbox-webpack-plugin и, похоже, он пока работает довольно хорошо. Мое приложение теперь можно установить, однако я хочу настроить его кеширование.

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

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

Это выглядит так в Chrome для Windows:

1 Ответ

1 голос
/ 17 марта 2020

Возможно, но, насколько мне известно, не существует готового решения. Вам нужно будет написать код вручную.

Основная идея c будет такой:

  1. Создание ПО со списком всех файлов, которые, возможно, потребуется кэшировать. после установки
  2. Сделайте, чтобы ПО НЕ кэшировало что-либо по умолчанию
  3. Сделайте так, чтобы ПО прослушивало сообщение, используя postMessage API
  4. Либо, когда пользователь устанавливает приложение или когда приложение запускается с домашнего экрана, отправьте сообщение со страницы JS на ПО. На ПО запускайте кэширование всех ресурсов

. Я рекомендую вам прочитать это https://web.dev/customize-install/ для получения дополнительной информации о процессе установки и его событиях, обнаружении и т. Д. .

...