Предотвращение кэширования изображений в браузере

У меня есть функция «Просмотр изображений», где есть миниатюры, и когда пользователь щелкает их, они расширяются.

Теперь оба этих изображения хранятся в отдельных виртуальных каталогах с разными размерами, больший из которых составляет 200*200 пикселей.

Тем не менее, он показывает только меньшее изображение, когда я нажимаю на него, чтобы увеличить, вместо изображений 200 * 200.


person sweta shah    schedule 21.07.2011    source источник
comment
Можете ли вы дать более подробную информацию об этом и некоторые примеры кода? :)   -  person zachzurn    schedule 22.07.2011
comment
Мне непонятно, почему у вас проблемы. Если изображения имеют разные имена или пути, браузер без проблем сможет отличить их друг от друга. Вы создаете изображения на лету и даете один и тот же URL-адрес обоим или некоторым из них? Я имею в виду, что если у вас есть изображения thumbnail/sally.jpg и fullsize/sally.jpg, браузер должен автоматически распознавать их как два разных изображения, и кэширование не должно быть проблемой.   -  person Jay    schedule 22.07.2011


Ответы (2)


Вы можете добавить случайный параметр URL к href изображения, чтобы отображаемый HTML выглядел так:

<img src="http://static.example.com/some/large/image.jpg?234234652346"/>

вместо

<img src="http://static.example.com/some/large/image.jpg"/>
person Matt Ball    schedule 21.07.2011
comment
+1. Это тоже сработает, но в интересах производительности может быть разумнее просто иметь ?thumb для всех маленьких изображений. - person Lee Kowalkowski; 22.07.2011

Похоже, вы не хотите, чтобы они кэшировались как таковые, но вы хотите дать им разные URL-адреса.

Если у них разные URL-адреса, то это не проблема кэширования.

Чтобы предотвратить кеширование, вы используете HTTP-заголовок ответа cache-control:no-cache при подаче изображений. (вы используете Apache?)

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

person Lee Kowalkowski    schedule 21.07.2011