Стратегии кэширования на первом диске не работают - PullRequest
0 голосов
/ 28 июня 2018

Извините, но я понятия не имею, как воспроизвести это. Я просто пытаюсь понять, что происходит в этот момент.

Я работаю над PWA, для которого определено несколько стратегий маршрутизации. За прошедший день работник службы попал в плохое состояние .... насколько я могу судить, не будучи обновленным.

Показанное поведение зависало при попытке выполнить запросы. Методом проб и ошибок я смог отследить его до моего запасного маршрута - удаление этого маршрута (или обход полностью sw) устранило проблему.

Кроме того, проблема была только в том случае, когда этот маршрут пытался сначала извлечь данные с диска - указав networkfirst или networkonly, эта проблема была решена.

Я попытался очистить кеш, а также указать новый суффикс кеша. Ни один из них не решил проблему. Новые работники сферы обслуживания успешно установили и обслуживали ту же пустую страницу.

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

Возможно, это связано с тем, что я нахожусь в процессе создания новой веб-платформы, и вполне вероятно, что рабочая среда получит 40 или 50 раз где-то по пути. Я только «намеренно» кэширую ответы 0 и 200 на проблемном маршруте.

Это маршрут

    workbox.routing.registerRoute(
  new RegExp(/^(?!.+\/weather?|.+__utm.gif?)/),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'resources',
    plugins: [
      new workbox.expiration.Plugin({
        maxEntries: 250,
        maxAgeSeconds: 86400 * 30       // 30 days
      }),
      new workbox.cacheableResponse.Plugin({
        statuses: [0, 200]
      })
    ]
  })
);

Однако я сократил это до безрезультатного:

workbox.routing.registerRoute(
  new RegExp(/^(?!.+\/weather?|.+__utm.gif?)/),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'resources',
  })
);

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

Попутно я обновился до рабочей версии 3.3.1, но, похоже, к этому моменту ошибка была встроена в мой браузер.

Информация о браузере: 67.0.3396.62 (Developer Build) построена на Debian buster / sid, работает на Debian buster / sid (64-bit)

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