Проблема повторной загрузки ресурса после prefetch
Тим Кадлек разобрался в причинах странного поведения prefetch на Netlify и рассказал про свои находки в статье "Prefetching? At This Age?".
Тим подключил к своему сайту библиотеку Instant.Page. Она помогает подгружать страницы в фоновом режиме с помощью prefetch, отслеживая наведение курсора мыши на ссылки и тапы пользователя. Но при хостинге сайта на Netlify подгруженные страницы при переходе по ссылкам не бралась из кэша, а загружалась повторно.
Оказалось, что Netlify (и любые другие CDN) отправляет заголовок Age
, когда его значение превышает max-age
браузер начинает повторно загружать ресурс. В Chromium, правда, логика немного сложнее — ресурс, загруженный с помощью prefetch, хранится в кэше пять минут вне зависимости от заголовка Cache-Control
, но по каким-то причинам этот период учитывал Age
. Баг в Chromium уже поправили. В Firefox баг заведён, но пока ещё открыт.
Очень интересная статья. Рекомендую почитать всем, кто интересуется темой производительности работы сайтов.
https://timkadlec.com/remembers/2020-06-17-prefetching-at-this-age/