Avatar billede mailand Nybegynder
03. februar 2004 - 15:55 Der er 7 kommentarer og
1 løsning

Er billedet er preloadet?

Jeg har den her preload funktion i JS:

function preload(arr,path){
    var preloaded = new Array();
    var strAlert = "";
    for(var i=0; i<arr.length; i++){
        preloaded[i] = new Image();
        preloaded[i].src = path+arr[i];
        window.status = "Preloading images ("+i+"/"+(arr.length-1)+")";
    }
    window.status = "";
    return preloaded;
}


- som jeg kalder med:

<body onload="java script:preload(new Array(<% 'et_billede.jpg','et_mere.jpg'),'/pictures/layout/');">


Men jeg er lidt i tvivl om billederne overhovedet bliver preloadet, da jeg ikke synes, der er den store forskel på mine mouseovers og så'n... Så med andre ord, findes der en måde at tjekke om billedet er blevet preloadet ?

... ligeledes er jeg lidt i tvivl om stiangivelsen er rigtig...

den skal preloade følgende:
root
- pictures
  - layout
    - et_billede.jpg

Jeg skulle mene, den sti, jeg laver med scriptet /pictures/layout/et_billede.jpg skulle være rigtig, men jeg har set dette script brugt, uden brugen af den sidste / i kaldet til preload().

Hvad siger I ?

#Mailand
Avatar billede roenving Novice
03. februar 2004 - 16:05 #1
Det er i hvert fald rigtigt, at du har den / med ...

-- med hensyn til prloading af billeder, har de seneste udgaver af IE fået indbygget et mere aggressivt check på, om der findes nye udgaver af f.eks. billeder, hvilket betyder, at hvis ikke du har indstillet, at den _aldrig_ skal hente nye udgaver, vil den hver gang checke, om en ny udgave skulle være kommet på serveren.

-- det vil ofte, med almindelige billeder, betyde, at du ikke kan se forskel i tiden, og i øvrigt også får meddelelsen i status-linjen om, at den henter billedet !-)
Avatar billede mailand Nybegynder
03. februar 2004 - 16:08 #2
ok... men man skulle vel mene, det bør være bedst at preloade stadigvæk, ikke ?

- de ting, der bliver preloadet, er grafiske elementer til layoutet samt grafik til knapper, der typisk skifter ved mouseover... typisk ved et element skifter stylesheetklasse.

#Mailand
Avatar billede roenving Novice
03. februar 2004 - 16:37 #3
Skifter klasse ?-)

Det er dumt, for så skal browseren genberegne hele sit css-DOM-træ, og selv om det ikke er noget, som tager mange sekunder, kommer den forsinkelse jo oveni !-)

Skal du ændre een (eller få) property(ies) på et element kan det _kun_ anbefales at ændre den direkte på elementet (se f.eks. http://msdn.microsoft.com !-)

Mht. preload er det et godt spørgsmål, som jeg ikke har set en ordentlig problematisering af endnu, for der må være en størrelsesgrænse, hvor man helt klart kan se forskel !o]
Avatar billede mailand Nybegynder
03. februar 2004 - 16:41 #4
hmm... altså bedre at lave en this.style.[element] = '' ?

- men så har jeg lige et spm. mere.... kan man se navnene på disse elementer, da de tilsyneladende ikke altid hedder det samme som i CSS ?

#Mailand
Avatar billede roenving Novice
03. februar 2004 - 20:28 #5
De hedder altid det samme som i css, men da en masse css-properties indeholder -, som er ulovligt i javascript, skal du oversætte dem med interCap:

bindestreger fjernes, og i stedet bliver næste bogstav stort !o]

Altså:

vertical-align bliver til verticalAlign, background-image bliver backgroundImage og -moz-opacity til MozOpacity !-)
Avatar billede mailand Nybegynder
03. februar 2004 - 23:59 #6
wauv... tusind tak...

du fortjener da til fulde dine point!

smid et svar og tusind tak for hjælpen!

#Mailand
Avatar billede roenving Novice
04. februar 2004 - 04:07 #7
Velbekomme '-)
Avatar billede roenving Novice
04. februar 2004 - 08:15 #8
-- og tak for points ;~}
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