#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 и т.д. Таким образом, чтобы он перезагружался только при необходимости.
Комментарии:
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. Спасибо за совет! Однако моей целью было не перезагружать изображение.