Avatar billede Slettet bruger
27. august 2006 - 13:32 Der er 9 kommentarer og
1 løsning

er et billede i cachen

hvordan kan jeg spørge om et billede er i browserens cache

jeg går ud fra det er noget lignende dette, men kan ik helt få det til at virke

<script language="javascript" type="text/javascript">
banner = new Image();
banner.src = 'test1.jpg';


function isLoaded(){
  if (banner.complete){
  alert("den er loaded")
 
}

  }
</script>


Hvis jeg har preloaded på en side vil jeg gerne kunne spørge på en anden side...ligger filerne i cachen?

bruger man complete til det eller??
Avatar billede Slettet bruger
27. august 2006 - 13:43 #1
det jeg ikke kan forstå er at hvis jeg kalder isLoaded med en body onload så kommer der ikke nogen alert selvom banner burde være i cachen.

hvis jeg indsætter en timeout virker det...men det virker lidt cryptisk. Det virker enda selvom jeg sætter timeouten til 0

function isLoaded(){
setTimeout("isLoaded2();", 100);
  }
 
function isLoaded2(){

  if (banner.complete){
  alert("den er loaded")
 
}
Avatar billede olebole Juniormester
28. august 2006 - 14:01 #2
<ole>

Du kan ikke checke, om et billede ligger i maskinens cache. Hvad skal du bruge det til - og hvordan?

/mvh
</bole>
Avatar billede Slettet bruger
28. august 2006 - 23:46 #3
hvis jeg kunne vide at billederne ikke var i cachen ville jeg sende brugeren hen til en "vente-side" mens grafikken loadede. Hvis han havde grafikken i sin cache skulle han bare se siden
Avatar billede olebole Juniormester
29. august 2006 - 15:13 #4
Du kunne teste, om billedet's 'readyState' er 'complete' indenfor f.eks. 50 msek. Er det tilfældet, ligger det i cache'en. Noget à la:

<script type="text/JavaScript">
function cacheTest(im) {
    if (im.readyState!="complete") {
        alert("Not in cache");
        // gør noget ved det  :)
    }
}
function loadTest() {
    var im = new Image();
    im.src = "bla.jpg";
    setTimeout(function(){cacheTest(im)}, 50);
}
</script>
Avatar billede Slettet bruger
03. september 2006 - 12:01 #5
ok tak ole
det er lidt den samme løsning som jeg undrede mig over
Avatar billede Slettet bruger
03. september 2006 - 12:03 #6
ok tak ole
det er lidt den samme løsning som jeg undrede mig over

function isLoaded(){
setTimeout("isLoaded2();", 100);
  }
 
function isLoaded2(){

  if (banner.complete){
  alert("den er loaded")
 
}

denne virker....men hvis jeg bare kalder isLoaded2() direkte virker det ikke.
det der er mærkeligt er at det virker selvom jeg sætter timeout til 0 ms.
Avatar billede olebole Juniormester
04. september 2006 - 09:02 #7
"men hvis jeg bare kalder isLoaded2() direkte virker det ikke." ... nej, det er helt naturligt. Det er ikke uden grund, min version ser ud, som den gør. Har du testet den?  :)
Avatar billede Slettet bruger
04. september 2006 - 11:41 #8
det virker fint....men jeg har stadig svært ved at forstå at man skal spørge med en timeout. hvorfor kan man ikke spørge direkte om den er complete??
Avatar billede Slettet bruger
23. september 2006 - 11:50 #9
Lad os lukke. Tak for hjælpen olebole. det virker fint
Avatar billede Slettet bruger
28. december 2007 - 13:02 #10
Lukker
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