Мой сайт разработан как забавный сайт для картинок, когда пользователь нажимает случайную кнопку, код PHP на той же странице генерирует новое случайное изображение, так оно и должно работать. Однако мне нужно нажать кнопку F5, чтобы получить новое изображение.
Я читал по другому вопросу, что люди используют дату получения и получают строку запроса времени, сгенерированную в конце ссылки, чтобы избежать кеширования браузеров, но я не могу понять это для жизни меня.
Я не очень хорошо разбираюсь в php, поэтому, пожалуйста, говорите так, как будто я знаю только основную структуру веб-страницы. Спасибо!
То, что вы описываете, называется отключением кэша и обычно представляет собой случайную строку или временную метку, прикрепленную к URL-адресу. Когда вы ссылаетесь на свой образ, добавьте его так:
echo get_random_image_url() . '?' . time();
Это приведет к тому, что URL-адрес выглядит следующим образом:
http://img.ruphp.com/php/random.jpg?1355862360
Примечание: get_random_image_url
– это всего лишь пример, но я уверен, что вы get_random_image_url
эту идею.
Этот поток может представлять интерес: как заставить веб-браузер НЕ кэшировать изображения .
я думаю, что использование заголовков лучше, чем трюк URL
<?php header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past ?>
Это очень легко решить: например, проверьте следующие две ссылки:
http://img.ruphp.com/php/06_Place_20773_1_Mis.jpg
http://img.ruphp.com/php/06_Place_20773_1_Mis.jpg?randomValue
Обе из этих двух ссылок будут открыты одно и то же изображение.
Это ваше решение! Вы должны добавить в конце вашего имени файла изображения случайное значение:
image.png?<?php echo someRandom();?>
Это сообщество или Google, чтобы написать способ, который создает случайные значения.
Также есть решение с использованием javascript , suupose следующие
<img id="funny" src="scripts/php_rand_image.php" /> <a href="javascript:changeImage('funny')">Get another image</a> <script> function changeImage(ob){ image = document.getElementById(ob) d = new Date(); image.src = image.src+'?'+d.getTime(); } </script>