Как предварительно кэшировать список URL-адресов из файла json? - PullRequest
0 голосов
/ 23 января 2020

вместо жестко закодированного списка URL в serviceworker. js

workbox.precaching.precacheAndRoute([
  { url: '/index.php',revision: 'index2209'},
  { url: '/images/wifino.svg',revision: 'wifino2209'},
  { url: '/offline.php',revision: 'offline2209'}
]);

Я хочу добавить динамические URL c с файлом json (сгенерированным с помощью PHP). Файл json выглядит следующим образом (но его можно изменить):

{url: 'm.php?tid=1', revision: '11579804421'},
{url: 'm.php?sid=17', revision: '21579804421'},
{url: 'm.php?sid=3', revision: '31579804421'}

Как мне прочитать этот файл и поместить его в список workbox.precaching.precacheAndRoute?

Спасибо много!

Uli

1 Ответ

0 голосов
/ 24 января 2020

Вы действительно не можете сделать это с workbox-precaching. Он опирается на информацию revision, хранящуюся в виде встроенного файла рабочего сервиса верхнего уровня, поэтому любые изменения в поле revision будут запускать процесс обновления в жизненном цикле работника сервиса. Это оптимизация, позволяющая избежать необходимости повторной проверки предварительно кэшированных URL-адресов вне события install.

Одним из способов решения этой проблемы может быть настройка веб-сервера для динамической генерации содержимого service-worker.js и вставьте в вызов workbox.precaching.precacheAndRoute() соответствующую информацию о версиях манифеста предварительного кэша. Прошло много времени с тех пор, как я работал с PHP, поэтому я не могу придумать какой-то пример кода на макушке моей головы, но вы в основном захотите использовать любой логический c, который вы используете для генерации JSON и вместо того, чтобы записать его в отдельный файл, перенесите его содержимое в ваш service-worker.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...