Работник службы медленнее, чем сетевые вызовы в PWA? - PullRequest
0 голосов
/ 10 января 2020

Могут ли кеш-вызовы на основе PWA быть медленнее, чем сетевые вызовы?

Это то, что я видел в одном из веб-приложений, для ресурса JSON:

Кэш очищен и вызвано из службы: 426 мс Вызывается из Служащего (в инструментах разработчика / размер сети упоминается в Службе): 576 мс

В файле нет записи в манифесте. json, но в ngsw-manifest. json файл упоминается в stati c.

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

1 Ответ

1 голос
/ 13 января 2020

Да, если у вас есть обработчик событий fetch в сервисном работнике, то это добавляет некоторую задержку для сетевых запросов. Так как он перехватывает все запросы от вашего приложения. Но красота и преимущества его использования проявляются в том, что вы сразу же отправляете ответы из Cache Storage API, а не выходите в сеть.

Возможно, вы захотите прочитать больше об этой теме c в статье о сервис-работнике использование в Поиске Google https://web.dev/google-search-sw/#problem: - служебные расходы-работника

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

...