Сейчас работаю над мелкими скриптами для сайта, и понадобилось мне, чтобы после обновления страницы картинка не кэшировалась, потому что она должна была измениться после того, как вместо неё скрипт загрузит новую. Но обновлялась она только после второй перезагрузки страницы. А надо чтобы после первого же обновления, сразу.
Кто не знает: кэширование сохранение полученных данных на компьютере для ускорения дальнейшей их загрузки. Подавляющее большинство сайтов, которые вы грузите, кэшируется на жёсткий диск. Делается это для того, чтобы не надо было каждый сайт заново грузить из Интернета. Это повышает скорость загрузки и понижает расход трафика.
В моём случае этого делать нельзя с этим рисунком, потому что кэширование не позволяло сразу его обновить в браузере. Мета-теги не помогли, ява-скрипты кривые, и я не так сильно хорошо знаю ява-скриптование, чтобы написать свой, некривой скриптик. А как тогда?
А вот так, с помощью популярного препроцессора гипертекста:
echo "<img src="image.gif?' . rand(1, 1000000000) . '>";
Функция «rand» выводит случайное число от 1 до 1 000 000 000. Таким образом, готовый исходник будет выглядеть так:
<img src="image.gif?674530029">
Привязав после вопросительного знака к изображению номер, мы добьёмся нужного эффекта: браузер видит, что у рисунка новый адрес и не станет вытаскивать его из кэша. Он загрузит его заново. Шанс, что этого не случится один из миллиарда.
Теперь у меня другая проблема. Изображение-то не кэшируется, а вот его габариты почему-то сохраняются. То есть обновлённый рисунок до второй перезагрузки имеет размеры старого рисунка.
Буду думать.
Комментариев нет:
Отправить комментарий