2012-12-18 17 views
5

Moja strona ma być zabawną stroną z obrazkami, kiedy użytkownik kliknie losowy przycisk, kod PHP na tej samej stronie generuje nowy losowy obraz, tak to ma działać. Muszę jednak nacisnąć przycisk F5, aby uzyskać nowy obraz.Łańcuch URL URL, aby uniknąć buforowania przeglądarki

Czytałem na innym pytaniu, że ludzie używają daty otrzymania i otrzymują ciąg kwerendy czasu wygenerowany na końcu linku, aby uniknąć buforowania przeglądarki, jednak nie mogę tego rozgryźć na całe życie.

Nie jestem zbyt dobry w php, więc proszę mówić tak, jakbym znał tylko podstawową strukturę strony. Dziękuję Ci!

+1

lepiej, aby ustawić nagłówki, niż użytku ten "trick" –

Odpowiedz

4

To, co opisujesz, nazywa się łamaczem pamięci podręcznej i jest zwykle losowym ciągiem znaków lub znacznikiem czasu dodawanym do adresu URL. Kiedy Twego wizerunku, poprzedź go tak:

echo get_random_image_url() . '?' . time(); 

To spowoduje URL wygląda tak:

http://your.server.com/random.jpg?1355862360

Uwaga: get_random_image_url jest tylko przykładem, ale jestem na pewno masz pomysł.

Ten wątek może Cię zainteresować: How to force a web browser NOT to cache images.

+0

to odwołanie do pliku php, który pobiera losowy obraz z mojego hostingu. Przykro mi, jestem całkiem dobry w CSS i html, ale właśnie zacząłem uczyć się kilka miesięcy temu. Każda dodatkowa pomoc zostanie bardzo doceniona. –

0

Jest bardzo łatwy do rozwiązania, na przykład: Sprawdź następujące dwa linki:

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg

http://cdn.arstechnica.net/wp-content/uploads/2012/10/06_Place_20773_1_Mis.jpg?randomValue

Zarówno z dwóch linków będzie otwarty ten sam obraz.

To jest Twoje rozwiązanie! Trzeba dodać na końcu pliku obrazu wymienić losową wartość:

image.png?<?php echo someRandom();?> 

tej społeczności lub Google sposobu, aby napisać funkcję, która gemnerates wartości losowe.

Ponadto istnieje rozwiązanie wykorzystujące , suupose następujące

<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> 
+0

Próbowałem twojej odpowiedzi, ponieważ wydawało mi się najłatwiejsze, dziękuję, ale kiedy umieściłem to na końcu adresu URL, np. "" w pliku index.php strona już się nie wyświetla. Jakakolwiek informacja zwrotna? –

+0

Musisz zauważyć, że: someRandom() jest niestandardową funkcją, którą musisz napisać. Do someRandom() należy dodać sufiks obrazu. Z drugiej strony zalecam używanie rozwiązania zależnego od Javascript. – SaidbakR

0

myślę użyciu nagłówków jest lepsza niż trick 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://php.net/manual/en/function.header.php

+0

Świetne i czy mogę umieścić to w dowolnym miejscu na strukturze strony? dawny. głowa, ciało –

Powiązane problemy