Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuvat välimuistiin

Sivun loppuun

sane [30.07.2006 22:19:34]

#

Onko mahdollista saada nettisivuilla kuvia latautumaan koneen välimuistiin ilman että kuvan tarvitsee näkyä sivuilla? Tarvitsisin tätä koska olen javascriptillä toteuttanut puhelimen vaihdon http://3g.kiinnostaa.com sivuille, mutta tämä kuvan päivitys toimii viiveellä. Tai jos on muita vaihtoehtoja kuvan vaihtumisen nopeuttamiseen, olisin kiitollinen kuulemaan niitä.

Olga [30.07.2006 22:43:17]

#

JavaScriptillä ainakin onnistuu kuvien lataus etukäteen (Google: javascript image preload tms) ja toinen vaihtoehto on läiskäistä kuvat normaalisti img-tageilla sivulle ja piilottaa halutut kuvat CSS:llä (display: none).

sane [31.07.2006 18:51:37]

#

Kiitoksia, pitää tutustua noihin javascriptin mahollisuuksiin:P

sane [01.08.2006 23:53:45]

#

Tällaisen sain tehtyä, mutta ei tunnu toimivan kuin Operalla:(

function preloader(){

// counter
var i = 0;

// create object
imageObj = new Image();

// start preloading
for(i=0; i < kuva.length; i++){
imageObj.src=kuva[i];
}
}

Ja liitin sivuille näin:

<body onLoad="vaihdaKuva(); preloader();">

Metabolix [02.08.2006 11:03:18]

#

Tuo toinen ratkaisu on todennäköisesti varmempi ja paremmin toimiva, eli CSS:llä piiloon vain.

Blaze [02.08.2006 11:08:20]

#

Ja kun CSS on pois käytöstä, kaikki kuvat näkyy. Tässä tapauksessa JavaScript on minusta se parempi ratkasu.

sane [02.08.2006 12:38:43]

#

Kyllä tosiaan mielummin tota JavaScriptiä käyttäisin, jottei kuvat näkyisi jos CSS ei käytössä. Lisäksi noiden kuvien näkyvyys on jo ennestään JavaScripitistä riippuvainen.

Heikki [02.08.2006 13:13:39]

#

Eiköhän CSS ole nykyaikaisilla selaimilla käytössä useammin kuin javascript? Olettaen että IE 6 ei bugita pahasti noin yksinkertaisten muotoilujen kanssa.

kayttaja-2791 [02.08.2006 13:36:21]

#

Heikki kirjoitti:

Eiköhän CSS ole nykyaikaisilla selaimilla käytössä useammin kuin javascript? Olettaen että IE 6 ei bugita pahasti noin yksinkertaisten muotoilujen kanssa.

Mutta eikös tässä tapauksessa CSS-kikkailun kanssa sivu näy pahasti väärin kun se ei ole käytössä? Mutta toisaalta jos JS ei ole käytössä niin se aiheuttaa vain preloaderin toimimattomuuden, sivut näkyvät muuten oikein.

Tai no, kaikkien kuvien näkyminen yhdellä sivulla ei liene kovin paha virhe (varsinkin kun sivu tuskin on muutenkaan mikään kauneuden riemuvoitto kun CSS on poissa käytöstä). Mutta periaatteessa.

Onko muuten varma että tuo CSS display none todella latauttaa sen kuvan kaikilla selaimilla? Joskus mielestäni tutkailin asiaa, ja tulin tulokseen että sen toimivuus koko selainkaartilla oli jokseenkin puutteellista. Samoin useimmat selaimet taitavat ladata esiladattavat kuvat samalla prioriteetilla kuin muutkin kuvat; koko muunkin sivun lataus hidastuu kenties hyvinkin radikaalisti. JS:llä taas on mahdollista toteuttaa se niin että se skripti ajetaan vasta kun sivu on latautunut (onload-tapahtuma).

Tuola onkin aiheesta enemmän asiaa:
http://www.biomi.org/blogi/2005/11/kuvien_esilatau.html

Olga [02.08.2006 15:55:13]

#

No taas sitä oppi uutta :) Eli JavaScriptiä käyttöön.

Meitsi [02.08.2006 17:52:42]

#

Voihan kuvien width ja height arvot laittaa vaikka yhden pikselin kokoisiksi, jolloin niitä ei paljon huomaa, vaan XHTML ei kait sulata tyylimääreitä tageissa, korjatkaa jos olen väärässä.

sane [02.08.2006 22:13:18]

#

Osaako kukaan sanoa tuosta aikaisemmin kirjoittamastani koodista, että mikähän siinä olisi vikana kun tuntuu toimivan vain Operalla?

kayttaja-2791 [02.08.2006 23:38:55]

#

Jaa-a, onhan "kuva" varmasti globaali muuttuja?

sane [02.08.2006 23:50:56]

#

JTS kirjoitti:

Jaa-a, onhan "kuva" varmasti globaali muuttuja?

Kyllä ainakin pitäisi olla, sillä muut scriptit toimivat käyttämällä "kuva" muuttujaa. Eli kuvaa ei ole määritetty funktion sisällä, eli eikö sen tällöin pitäisi olla globaali?

kayttaja-2791 [02.08.2006 23:59:45]

#

Pitäisi joo. Missä muodossa sitten kuvien osoite on? Koko url vai vain paikallinen nimi? Jos paikallinen nimi, niin voisit kokeilla täydellisellä urlilla varustettuna.

sane [03.08.2006 00:11:24]

#

JTS kirjoitti:

Pitäisi joo. Missä muodossa sitten kuvien osoite on? Koko url vai vain paikallinen nimi? Jos paikallinen nimi, niin voisit kokeilla täydellisellä urlilla varustettuna.

Paikallinen nimi on, mutta en uskoisi tällä olevan merkitystä, sillä sama taulukko toimii hyvin kuvaa muuten vaihdettaessa. Ainoastaan tuossa esilatauksessa ei toimi.
EDIT: kokeilin vielä tätä niin ei sekään auttanut.

sane [03.08.2006 02:33:57]

#

Kokeilin tuota vielä kännykällä (6630, Opera) ja tälläkin yhdistelmällä toimii hyvin.. Olisikohan sitten tuossa silmukassa jotain et Firefox ja IE ei suostu lataamaan kuvia silmukassa?
EDIT: Noniin sain vihdoinkin toimimaan, kun muutin myös imageObj taulukoksi, jolloin saman imageObj lähdettä ei päivitetty uudelleen joka kerta.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta