Domanda

Sto utilizzando questo rotatore di immagini.È fantastico, ma se ci collego più volte su una pagina, viene visualizzata la stessa immagine.Non so quante volte si accederà, quindi l'utilizzo di più script identici non è pratico. Come posso modificare questo script in modo da poter ottenere un'immagine diversa altrove sulla pagina mentre utilizzo lo stesso URL?È possibile?

EDIT: Si scopre che ci deve essere stato qualche problema con la codifica.Ho trovato un codice migliore qui e funziona se utilizzo query diversesu ogni collegamento.Grazie a tutti coloro che hanno inviato le risposte!

È stato utile?

Soluzione

Passa una stringa di query diversa per ogni istanza in modo che il browser la recuperi più volte.

Il tuo browser sta rilevando che ogni immagine "ruotata" utilizza lo stesso URL, quindi memorizza nella cache l'immagine risultante dalla prima richiesta.

Puoi modificare questo comportamento in due modi.

  1. Aggiungi il suffisso agli URL delle immagini "ruotate" con una stringa casuale da php.Ad esempio ( "rotate.php? Img= my_static_image.jpg & x= 12345" Questo significa che il browser effettua una nuova richiesta per ogni immagine.

  2. Rendi il tuo script di rotazione reindirizzamento a un URL casuale, senon riceve parametri aggiuntivi.

Altri suggerimenti

Puoi lavorare con il parametro GET "img".

/path/to/images/rotate.php?img=my_static_image.jpg

Ulteriori informazioni sul parametro GET predefinito sono disponibili nella documentazione: http://www.alistapart.it / articoli / randomizer /

Se vuoi mantenere l'URL lo stesso, aggiungi semplicemente un'intestazione senza cache al tuo script php in questo modo:

<?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
?>

Si spera che qualsiasi browser decente lo rispetti e non memorizzi nella cache la prima richiesta.

L'altra opzione è modificare lo script rotate.php in modo che il codice sia contenuto all'interno di una funzione.Quindi dovresti utilizzare include('rotate.php'); nella parte superiore dello script e utilizzare la tua nuova funzione rotate() ovunque ti serva.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top