PDA

Pogčedajte punu verziju : Kako ubiti FF cache ?


ivanhoe
02. 03. 2006., 18:28
Imam problem sa testiranjem nekog javascripta jer FF uporno vuce skripte iz kesha .. mogu da disableujem cache preko web-dev extenzije, ali onda se nista ne kesira na stranici, pa mi se gomila slicica ucitava na svaki reload, a kad ponovo ukljucim cache, FF opet pozove one prethodne stare skripte (dok je disablovan cache u njega se nista ne stavlja)... tako da to resenje smara...

Da li postoji neki shortcut ili fora da nateram firefox da uradi proveru da li je kesh validan i ucita ono sto je menjano, pa da onda posle nastavi da sljaka normalno ?? CTRL + F5 bi trebalo da radi ovako nesto, ali izgleda da nema nikakvog uticaja na javascript i CSS fajlove, samo se slike lepo reloaduju...

Blood
02. 03. 2006., 18:48
Tools->Options->Privacy->Cache->Clear Cache Now :)

noviKorisnik
02. 03. 2006., 19:09
Malo trikova ...
<script src="skript.js?t=<?php echo time (); ?>"></script>

ivanhoe
02. 03. 2006., 22:56
e vidis, ovo sa time() je odlicna ideja, skroz sam zaboravio na to...

dinke
03. 03. 2006., 00:45
Ja to iskreno prvi put vidim. Ajd neka neko objasni cemu sluzi (a uz to i ne radi) ono ?t= ... Mogu da pretpostavim na osnovu ovog php dela (koji setuje na current timestamp) ali ajde da cujem i zvanicno objasnjenje :)

bluesman
03. 03. 2006., 01:00
Pa to je standardna fora da se izbegne da se prikazu keširani rezultati, dinke nemoj da me zbunjuješ. Ne sećam se da sam to ikada koristio ali vidim da to masovno rade, naročito kada šalju neke podatke Flash <-> PHP

dinke
03. 03. 2006., 01:03
Pa, ja to odradim sa adekvatnim http headerom (pogotovo kada je flash u pitanju), ovo sa js prvi put zaista vidim :)

ivanhoe
03. 03. 2006., 04:54
naprosto se setuje random ime skripti, pa je browser ne uzima iz kesha...

dobra je fora, ali izgleda da ne mora, jer ovo cudno ponasanje mog FF je, po svemu sudeci, vezano za lokalne fajlove (bez servera), jer kad sam podigao strane na server krenuo je cache da sljaka normalno...bice da se FF nesto tripuje, ne ume da proveri datum fajlovima ili tako nesto...

noviKorisnik
03. 03. 2006., 08:29
Pravo da kažem, nisam koristio ovu foru za js ali sam imao problem pri dovlačenju xml fajlova (koji se frekventno menjaju) u flash.

dinke, ne razumem tačno na koji http header misliš kad se radi o tekstualnim fajlovima koji se direktno dostavljaju klijentu?

dinke
03. 03. 2006., 11:35
dinke, ne razumem tačno na koji http header misliš kad se radi o tekstualnim fajlovima koji se direktno dostavljaju klijentu?
Aha, sad sam skapirao, ti mislis na http konekcije koje sam flash klijent pravi kao sa recimo:
doc = new XML();
doc.load ("theFile.xml");

Ja sam mislio na kesiranje samog flasha u browseru i http cache headere tipa:

// a bunch of garbage to make IE behave properly with https
header("Pragma: ");
header("Cache-Control: ");
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"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Cache-control: private");

ali to ovde nece proci ? Da li onda flash klijent kada pravi svoje konekcije salje ovaj header kroz http request ili ne ? Iskreno, ne secam se bas tacno, ali znam da smo mi imali problem sa downloadom fajlova preko https-a (u IE-u) i ovaj "bunch of crap" gore nam je resio problem. Problem sa kesiranjem xml<-->flash nismo ni imali.

jablan
03. 03. 2006., 11:54
U Dinke ala si se istripovao... ;)

Ništa flash, ljudi pričaju o ulinkovanim javascript fajlovima. Dodavanjem (fiktivnog) random GET parametra sprečavaš browser da ga vuče iz sopstvenog keša i to je to.

dinke
03. 03. 2006., 12:04
Ma znam, skapirao sam to za fiktivni get parametar (mada opet, prvi put to vidim, zaista) ali nK i Blues pricaju i o flashu, pa rekoh da malo prosirimo temu ;)

Petar Marić
03. 03. 2006., 12:07
Da, browser ne bi trebao da kešira datoteke koje imaju GET parametar u svom URL-u - mada to u praksi ne mora da bidne ;)

dinke
03. 03. 2006., 12:14
Kada je IE u pitanju nista u praksi ne mora da bidne ;)

noviKorisnik
03. 03. 2006., 15:14
Browser će keširati te fajlove ali pamti celu putanju ... a ovde je svake sekunde drugačija vrednost GET parametra pa se ne vuče iz keša.

Inače, za headere ... doduše, ima flash xml.addRequestHeader (), ali sam to koristio samo za slanje podataka ... nisam siguran da može biti od koristi pri zahtevu za dovlačenje fajla (hehe, a daleko od toga da mogu bilo šta da tvrdim - za većinu tih header stvari nemam pojma čemu služe :-)))

ivanhoe
03. 03. 2006., 16:20
koliko ja znam kesiranje se radi na nivou browsera i kad se kdirektno iz flasha nesto ucitava, tako da bi trebalo da se postuju HTTP headeri, a i korisni su za slucaj da korisnik ide preko proxija...