Я получаю данные с помощью API Fetch с того же сервера. Я получаю данные JSON, а также файлы SVG (используя тег img
). Оба запроса возвращают HTTP-заголовок Last-Modified
, чтобы браузеры могли кэшировать содержимое. Оба запроса также успешно кэшируют ресурсы. Я проверяю это с помощью программного обеспечения ChromeCacheView . Это означает, что при последующих запросах браузер также отправляет заголовок If-Modified-Since
.
Теперь дело в том, что данные JSON обслуживаются из кэша, а не из файлов SVG, хотя оба запроса содержат заголовок If-Modified-Since
в своих запросах. Я протестировал три сценария:
При обновлении страницы - при загрузке данных SVG и JSON и отображении SVG, поскольку они наложены на карту
- В этом случае данные JSON и SVG извлекаются из кэша памяти
При обновлении страницы - в то время как SVG и JSONданные загружаются и SVG имеет НЕ в представлении, поскольку они наложены на карту
- В этом случае данные JSON по-прежнему выбираются из кэша, но не из SVG
После загрузки страницы на новой вкладке - новый сеанс
- В этом случае данные JSON по-прежнему выбираются изкеш, но опять же не SVG
Заголовки, связанные с кешем HTTP, содержат только Cache-Control: public, must-revalidate
и, конечно, Modified-Since
. К сожалению, у меня сейчас нет примера кода, чтобы воспроизвести это, но все же, если у вас есть какие-либо мысли по этому поводу?