Сколько раз изображение загружается на страницу?

#php #jquery #image #caching

#php #jquery #изображение #кэширование

Вопрос:

Я создаю плагин для браузера изображений в jQuery. По сути, на моей странице будет полноразмерное изображение, а под ним будет средство прокрутки изображений, содержащее множество эскизов доступных изображений. Когда пользователь нажимает на миниатюру, она переходит к полноразмерному окну.

Я намерен просто изменить размер эскизов с помощью HTML / CSS вместо сохранения отдельного файла эскизов. Мой вопрос в том, если браузер загрузит все мои изображения в скроллер эскизов, придется ли ему перезагружать каждое изображение снова, когда оно будет загружено в полноразмерный просмотрщик?

Я знаю, что обычно ответ на этот вопрос отрицательный — как только браузер загрузил файл, он доступен. Однако я использую не только статические изображения. Изображения подвергаются некоторой предварительной обработке, поэтому я буду отправлять их через PHP.

Например, src одного из моих эскизов может быть www.mydomain.com/prepImage.php?id=1

Затем PHP выполнит некоторую обработку и вернет примерно следующее:

 header("Content-Type: image/jpeg");
echo $StringifiedJPEGFile;
  

Будет ли возврат файла из PHP подобным образом заставлять браузер повторно загружать изображение каждый раз, когда я указываю источник изображения по этой ссылке?

Ответ №1:

Будет ли возврат файла из PHP подобным образом заставлять браузер повторно загружать изображение каждый раз, когда я указываю источник изображения по этой ссылке?

Изображения загружаются только один раз на страницу. И даже это будет зависеть от отправляемых вами заголовков.

Вы можете настроить заголовок последнего изменения, заголовок истечения срока действия, установить заголовок etag и т.д. Таким образом, чтобы он перезагружался только при необходимости.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

Комментарии:

1. Его не нужно загружать снова в течение сеанса этого пользователя. Будет ли это поведение по умолчанию?

Ответ №2:

Можно ли кэшировать изображение или нет, зависит от настроек браузера и ваших заголовков управления кэшем. В остальном любое изображение обрабатывается одинаково, независимо от того, загружено оно с php или с чего-то еще. Запросы GET могут кэшироваться в соответствии с HTTP.

Ответ №3:

вы можете заставить его загружать новое изображение, добавив фиктивную строку запроса, например

   <img src="my_image.php?a=432345" id="my_image" onclick="this.src='my_image.php?a=68945' " />
  

просто пример, чтобы оно каждый раз было новым, число должно меняться однозначно.

Комментарии:

1. Спасибо за совет! Однако моей целью было не перезагружать изображение.