Avatar billede jacob_m Nybegynder
20. marts 2007 - 10:17 Der er 21 kommentarer og
2 løsninger

Load iframe!

Hey...

Jeg har en dynamsik side hvor jeg har en iframe som indeholder php sider som hele tiden ændre sig.

Hvordan for jeg iframen til at loade en ny side istedet for at læse fra cachen !

På nuværende tidspunkt har jeg dette script

function vis_iframe(link){
document.getElementById("cont").src = link;
setTimeout("window.cont.location.reload(true)", "1000");
};

Men dette er ikke godt hvis man f.eks. tilføjer et kommentar på en tagwall eller lign, så bliver denne jo tilføjet 2 gange !

Så hvordan twinger man iframen til at indlæse siden og ikke tag fra cachen !
Avatar billede mcardle Nybegynder
20. marts 2007 - 10:27 #1
Kan du ikke bruge Meta refresh og så loade alle dine sider ind i et array og lave en random på array[i].
Avatar billede jacob_m Nybegynder
20. marts 2007 - 10:39 #2
Kan du forklarer det lidt mere uddybende?
Avatar billede mcardle Nybegynder
20. marts 2007 - 10:52 #3
Hmm, nu jeg tænker over det, så kan du ikke gøre det sådan. Sorry.
Avatar billede mcardle Nybegynder
20. marts 2007 - 10:56 #4
Hvad laver du dine sider i? PHP, HTML eller ASP?
Avatar billede jacob_m Nybegynder
20. marts 2007 - 11:01 #5
PHP og selvfølgelig HTML

Mit problem er som sagt at jeg udføre nogle php funktioner inde i iframen, og med min måde at ændre indholdet i iframen nu så kan der opstår situationer hvor en php funktion bliver kørt 2 gange. Hvis jeg ikke bruger denne funktion kan de ske at funktionen slet ikke bliver kørt fordi iframen tager fra cachen !
Avatar billede thesurfer Nybegynder
20. marts 2007 - 11:36 #6
Det er egentligt simpelt..: tilføj en vilkårlig værdi til urlen..

Dvs:

Det opfatter disse som forskellige urls:

side.php?12334343
side.php?45435343
side.php?87674543

Derfor: opret en random værdi hver gang siden loades.. erstat det efter "?..." med den nye værdi..
Avatar billede mcardle Nybegynder
20. marts 2007 - 11:38 #7
Hvis thesurfers virker, så brug det. ;o)
Avatar billede jacob_m Nybegynder
20. marts 2007 - 11:52 #8
Okay.. Det er jo interessant :D

Det vil jeg lige efterprøve. For det andet er lidt bøvlet og laver alt for meget traffik også..!
Avatar billede johan.o Nybegynder
20. marts 2007 - 13:10 #9
Det er også muligt du kan undgå cache ved at sætte en 'no-cache' header fra din php side...

header("Cache-Control: no-cache, must-revalidate");

Ikke testet, men burde vel virke :)

Mvh. Johan
Avatar billede jacob_m Nybegynder
20. marts 2007 - 13:27 #10
nice... Og det skal stå i toppen af php dokumentet ik!.. Før session_start osv.. ?!
Avatar billede jacob_m Nybegynder
20. marts 2007 - 13:36 #11
Johan.o > Dit ser ud til at virke lige præcis sådan som det skal.

Thesurfer > Dit virker også i min test, men kræver en del mere arbejde og disiplin end johan.o.

Men hvis i begge lægger et svar så skal i få nogle point :-D

Dejligt at få løst det..
Avatar billede jacob_m Nybegynder
20. marts 2007 - 13:38 #12
For at gå med limrem og seler så lavede jeg følgende header som skulle eliminere alle cache funktion -->

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");    
header("Cache-Control: no-store, no-cache, must-revalidate");     
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
Avatar billede johan.o Nybegynder
20. marts 2007 - 13:39 #13
Gad vide om browseren fatter at den ikke skal cache :)...fint det virker.
Avatar billede thesurfer Nybegynder
20. marts 2007 - 20:51 #14
Jeg springer over..

PHP-metoden (serversiden) er klart at foretrække, da alt klientside kan manipuleres.
Avatar billede roenving Novice
20. marts 2007 - 21:15 #15
Problemet er desværre, at browserne opfører sig autonomt engang imellem, så den eneste sikre metode er, at der altid fyres en ny url afsted, bruge _altid_ new Date().getTime() medmindre der er andre problemer !-)
Avatar billede thesurfer Nybegynder
20. marts 2007 - 21:28 #16
Ok, så kan jeg vist godt smide et svar alligevel..

Man kan altså bruge "new Date().getTime()" i stedet for et random-tal, i urlen..
Avatar billede roenving Novice
20. marts 2007 - 21:51 #17
new Date().getTime() er lige i den sammenhæng nærmest genialt !-)
Avatar billede thesurfer Nybegynder
20. marts 2007 - 21:56 #18
Ja, den vil jo aldrig give samme output flere gange :-)
Avatar billede jacob_m Nybegynder
21. marts 2007 - 08:41 #19
roenving, mange tak for det ekstra input, det er jo kun noget man opdager ved at have testet det mange gange.

Så tror jeg bruger begge muligheder. Så må jeg jo være hel graderet !
Avatar billede thesurfer Nybegynder
21. marts 2007 - 13:09 #20
Spørgsmålet er ikke afsluttet endnu.. Har du brug for kodeeksempler?
Avatar billede jacob_m Nybegynder
21. marts 2007 - 13:45 #21
Neje... Vente på svar fra Roenving..!.. :D

Men det fremgår vist heller ikke så klart af min sidste besked..
Avatar billede roenving Novice
21. marts 2007 - 14:20 #22
Nej tak, ellers tak !-)
Avatar billede jacob_m Nybegynder
21. marts 2007 - 15:03 #23
Det kan være du så vil have nogle point for at kigge på http://www.eksperten.dk/spm/769260 Hehe...

"So bee it"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester