Сервисные работники Firefox выбирают с включенной «работой в автономном режиме», путаница - PullRequest
0 голосов
/ 03 июля 2018

tldr: «Работать в автономном режиме» в Firefox - это не то же самое, что быть в автономном режиме. Не путайте его с автономным режимом Chrome в инструментах разработчика

У меня только что была странная проблема, которая стала еще более странной из-за того, что Firefox и Chrome ведут себя по-разному

  • У меня есть 2 работника службы на одном сайте, один из которых находится в папке a, а другой - в папке b.
  • У меня есть 2 веб-страницы, веб-страница a и веб-страница b. У каждой веб-страницы есть свой сервисный работник
  • Веб-страница a имеет iframe, который будет содержать либо онлайн-страницу, либо автономную веб-страницу b
  • Когда вы переходите в автономный режим, веб-страница a показывает веб-страницу b в iframe

У меня была ошибка, из-за которой работник службы b случайно очищал кеш всех работников службы на сайте при активации.

Сайт не работал в Chrome в автономном режиме, он пытался получить файлы в вызове fetch с сервера. Это работало в Firefox

У меня есть код, который показывает содержимое кэша, как показано ниже.

function ShowAllFromCache()
{
    console.log("ShowAllFromCache: cache name: " + STARTSW_CACHE)

    caches.open(STARTSW_CACHE).then(function (cache)
    {
        cache.keys().then(function (keys)
        {
            console.log(keys);
        });
    });
}

После того, как сервисный работник B активировал и очистил кеш, кеш был пуст, но я вижу в инструментах разработчика, что вызов fetch говорит, что файл не находится в кеше и отправится на сервер. Затем он говорит, что делает xhr вызов нулевой продолжительности, чтобы получить файл и успешно. Он не попадает на сервер

Если я физически отключаю интернет, я получаю сообщение об ошибке:

"Ошибка поврежденного содержимого

На сайте произошла ошибка сетевого протокола, которую невозможно исправить.

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

Chrome не работает ни в одном из сценариев.

1 Ответ

0 голосов
/ 03 июля 2018

Это потому, что автономный режим Firefox отличается от автономного режима. например перейти на bbc.com, выйти в автономный режим, обновить страницу. Вы все равно увидите страницу

...