Avatar billede tweak Nybegynder
28. december 2005 - 20:01 Der er 20 kommentarer og
2 løsninger

Cache i IE

Jeg har en counter som virker fint i FF men ikke i IE, jeg har fundet ud af at det har noget at gøre med den måde IE cache min swf i forhold til FF. Hver gang jeg har lavet en ændring i min swf fil vises den nyeste nemlig.?

Er der en måde at få IE til at opføre sig som FF.?

Jeg vil ikke bruge:

<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
Avatar billede steen_hansen Forsker
28. december 2005 - 20:17 #1
Hvad mener du med, at IE skal opføre sig som FF? Og hver gang du har lavet en ændring, vises den nyeste - i hvilken af browserne?

Du skriver højt og larmende, at du ikke ønsker at bruge meta-tags, men hvis du skal ubdgå caching af siderne, er dette absolut anbefalelsesværdigt:

<META HTTP-EQUIV="Expires" CONTENT="Fri, Jun 12 1981 08:20:00 GMT">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-store">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

Samt bruger du ASP, kan du sætte dette over <html>:

<%

    Response.Buffer = True
    Response.Expires = -1000
    Session.LCID = 1030

%>

Men jeg er ikke helt med på hvad du nøjagtigt mener.
Avatar billede tweak Nybegynder
28. december 2005 - 20:28 #2
Grunden til at jeg ikke vil bruge meta-tags er at det eneste den ikke må cache er min swf fil og så syntes jeg det er lidt skørt at man skal til at loade alt andet hver gang.... og så kan jeg ikke lige se hvor du får højt og larmende fra.!

Det er FF som viser den nye swf uden at slette cachen.
Avatar billede steen_hansen Forsker
28. december 2005 - 20:33 #3
Ok, jeg mente, at du tydeligt skriver, at du ikke ønsker at benytte meta-tags :o)

Du kan mig bekendt ikke nøjes med at cache dele af siden. Jeg tror (desværre), at det er enten eller ...
Avatar billede steen_hansen Forsker
28. december 2005 - 20:38 #4
Personligt ønsker jeg, at brugerne ser evt. ændringer, og ønsker ikke, at siden caches; så får de selvsagt ikke evt. ændringer at se. Men det er et personligt synspunkt, som du ikke nødvendigvis deler med mig. Jeg kan ikke se det skøre i det :o)
Avatar billede tweak Nybegynder
28. december 2005 - 20:47 #5
Det kommer ikke brugeren til gode kun mig :) Det er min menu og den tæller ikke hits som den skal.
Avatar billede nikolajdu Nybegynder
28. december 2005 - 21:24 #6
Der er et utal af måder du kan undgå flash cachen på... måske søgefunktionen var et bedre hint end alt det her gætteri.... :p
Avatar billede tweak Nybegynder
28. december 2005 - 21:30 #7
nikolajdu, nææ :) Jeg har skamt søgt både på google og her og også set svar fra dig, bare ikke noget som jeg kan bruge :( Kan ikke bruge <param name= /> da jeg bruger <script type="text/javascript"></script> til at hente min swf fil ind med.
Avatar billede tweak Nybegynder
28. december 2005 - 21:38 #8
Avatar billede thulstrup Nybegynder
28. december 2005 - 23:52 #9
Hvis du smider en variabel efter swf navnet, opfatter browserne det som en ny fil og den vil derfor ikke blive cachet.

F.eks:
var fo = new FlashObject("movie.swf?version=2", "mymovie", "200", "100", "7", "#336699");

Det kræver så bare at du ændre version variablen til et nyt nummer når du har ændret din swf.

Istedet for at skifte nummer manuelt kan du generere et random nummer med javascript, men så bliver swf'en loadet på ny hver gang, også selv om den ikke er ændret.

Den optimale løsning er at benytte et serverside sprog til at læse hvornår swf'en er oprettet, på den måde bliver filen kun loadet på ny når der er brug for det.
Avatar billede nikolajdu Nybegynder
29. december 2005 - 00:33 #10
Du skal heller ikke bruge param name="flashVasrs" - for det sikrer at der hentes fra cachen.

Et godt gammelt trick er minflash.swf?tid=random123456789
Avatar billede nikolajdu Nybegynder
29. december 2005 - 00:34 #11
Altså sætte ? og noget random bag filnavnet
Avatar billede steen_hansen Forsker
29. december 2005 - 08:02 #12
Det troede jeg bestemt ikke man kunne. Kigger spændt med :o)
Avatar billede tweak Nybegynder
29. december 2005 - 16:46 #13
Hejsa, jeg kan stadig ikke få den til ikke at cache min swf fil med:

var fo = new FlashObject("movie.swf?version=2", "mymovie", "200", "100", "7", "#336699");

virker det ikke.

Med meta-tags tæller den hver anden klik i IE med den tæller hvert klik i Opera som før talte som IE, hvis det kan være en hjælp til kommende forslag er siden www.digitalife.dk
Avatar billede tweak Nybegynder
29. december 2005 - 16:51 #14
Noget andet er at jeg kan kalde min .php fil med: loadVariablesNum(".php", 0);
som registre hvert kald. Men den tæller også kun et klik i IE og Opera I FF bliver hvert klik talt :(
Avatar billede tweak Nybegynder
29. december 2005 - 16:54 #15
Dvs at jeg for hver knap altså, f.eks forside - info osv indsætter:

loadVariablesNum("forside.php", 0);

som så kalder:

<?php
define("_BBC_PAGE_NAME", "Forside");
define("_BBCLONE_DIR", "/stien/til/counter/");
define("COUNTER", _counter_DIR."mark_page.php");
if (is_readable(COUNTER)) include_once(COUNTER);
?>
Avatar billede tweak Nybegynder
29. december 2005 - 17:10 #16
Ahhhh, fatter det sq ikke :(
Avatar billede tweak Nybegynder
29. december 2005 - 18:45 #17
Jeg har lagt mærke til at klikke man på f. eks Profil knappen to gange inden for kort tid tælles den som et klik, venter man et stykke tid med at klikke anden gang tælles begge klik og det er med meta-tags, om det også gør sig gældende uden skal jeg lige finde ud af :(
Avatar billede nikolajdu Nybegynder
30. december 2005 - 00:19 #18
Spørgsmål 1 - Du skal script flashen ind med javascript.

<script type="text/javascript">
var dato = new Date();
document.write('<object type="application/x-shockwave-flash" data="minFlash.swf?'+dato.getTime()+'" width="760" height="130">');
document.write('<param name="movie" value="minFlash.swf?'+dato.getTime()+'" />');
document.write('</object>');
</script>

I spørgsmål 2 gør vi lidt det samme men du bør opgradere til 'LoadVars' fremfor loadVariablesNum - Kig i hjælpen det er superlet.

I flash bruger jeg normalt en funktion for at returnere tiden som jo altid er unik.

noCache = function (doCache:Boolean){ // false henter fra cachen.
    var cache:Boolean = doCache;
    var dato:Date = new Date();
    return (cache == true)? "?noCache="+dato.getTime() : "";
}

og så i min LoadVars

minLoadVars.sendAndLoad( "minPHP.php"+noCache( true ), minLoadVars, "POST" );

Måske hjælper det lidt.
Avatar billede tweak Nybegynder
05. januar 2006 - 20:02 #19
nikolajdu, gider du ikke smide et svar :) Jeg er ikke helt klar over om det virker - tror det nok - for jeg har fundet en anden tæller som ikke har det problem.
Avatar billede nikolajdu Nybegynder
05. januar 2006 - 21:05 #20
well vi tager da en deler.
Avatar billede tweak Nybegynder
08. januar 2006 - 10:13 #21
Men tak for hjælpen :)
Avatar billede nikolajdu Nybegynder
08. januar 2006 - 12:24 #22
Tak for point - Jeg går ud fra det virkede :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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