Загрузка одного и того же изображения в разные URL

У меня есть изображение, загруженное на веб-странице, например http://example.com/test.jpg на example.com

Теперь, скажем, если с помощью гиперссылки на этой странице пользователь перейдет на example.com/testpage.html, где присутствует то же изображение (с src http://example.com/test.jpg), тогда браузер запросит это изображение с сервера снова?

PS: проблема, с которой я сталкиваюсь, заключается в медленном рендеринге страницы на одной HTML-странице из-за большого количества изображений и JavaScript. Поэтому я планирую загрузить некоторые изображения по предыдущему URL-адресу реферера, чтобы при входе пользователя на страницу некоторые изображения уже были загружены. Обратите внимание, что я не планирую загружать страницу асинхронно через js/ajax. Я хочу сделать простое перенаправление на данную страницу и хочу, чтобы некоторые изображения уже были загружены.

3 ответа

Решение

До тех пор, пока домен остается тем же, а кеширование настроено нормально, браузер отправит запрос, но получит ответ 304 Не изменено, и не нужно будет повторно загружать весь ресурс снова.

Браузер может или не может сделать запрос на изображение снова - это зависит от браузера, сколько лет изображение, когда оно было получено в последний раз и т. Д.

Когда браузер встречает запрос, он сначала проверяет свой кеш для URL

Если элемент находится в кеше и для него установлена ​​явная дата истечения срока действия (через expires или cache-control: max-age), и этот срок истекает в будущем, то браузер будет использовать версию в кеше.

Если элемент находится в кеше и у него нет даты окончания срока действия, то браузер может использовать эвристику, чтобы определить, нужно ли ему сделать запрос, например, если он загрузил его вчера и файл не изменился в течение 6 месяцев, он может решить использовать версия в кеше (непонятно, какие браузеры сейчас что делают с этим)

В качестве альтернативы, если элемент находится в кеше, браузер может выполнить запрос "если изменено после", и если ресурс не изменился с даты версии в кэше, сервер отвечает 304, в противном случае он отправляет файл.

Простая ссылка на изображение должна быть кэширована и загружена только один раз.

Вы должны проверить размер изображений - возможно, у вас есть огромное изображение (которое загружается медленно), которое отображается намного меньше и может быть изменено на сервере.

Другие вопросы по тегам