2016-06-28 2 views
0

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

1. Clear cache and unregister service worker 
2. Go to www.example.com 
3. Examine the network calls for resources (JS/CSS) 

Ожидаемый результат: запрос только одна сеть должна пойти на один ресурс.

Фактический результат: Две сетевые запросы делаются для каждого ресурса [SCREENSHOT[1]

+0

Трудно сказать, не видя y наш рабочий рабочий код. – Kinlan

+0

Я использую sw-precache для статических ресурсов, а также с помощью инструментария для динамического использования. Пол, это потому, что sw регистрируется параллельно и делает сетевой запрос отдельно для предварительно кэшированных элементов? Я могу поделиться своим кодом с вами, если вы захотите. –

ответ

5

Что вы видите в sw-precache выборку ресурсов для заполнения своих тайников. Это происходит независимо от первоначального запроса, сделанного контролируемой страницей. Это довольно распространенная модель, независимо от того, используете ли вы sw-precache.

(В стороне, я вижу, что вы явно управляете своими ресурсами JS и CSS, и это замечательно. Вы заметите, что sw-precache присоединяет заголовок кэширования к его запросам на предварительную подготовку прямо сейчас, lll всегда идет против сети, а не в кеш браузера HTTP. Предстоящая версия 4.0.0 от sw-precache, которую вы можете использовать теперь через ветвь master, имеет новый dontCacheBustUrlsMatching option, который позволяет отказаться от кэширования ресурсов что вы явно управляете версиями по именам файлов. Использование этой опции означает, что дополнительный запрос sw-precache для заполнения своих кешей будет выполняться через кеш браузера HTTP, пропуская поездку в сеть.)

Смежные вопросы