Preload di immagini in JavaScript
Quando si fa un effetto in JavaScript o in CSS che prevede un cambio di immagine, potrebbe esserci un fastidioso tempo vuoti in cui bisogna aspettare che il browser scarichi l'immagine prima di visualizzarla.
Per risolvere questo problema, è possibile pre-caricare le immagini in JavaScript appena viene caricata la pagina in questione.
Per prima cosa bisogna creare la funzione in JavaScript che si occuperà del preload vero e proprio:
Questa funzione dovrà essere eseguita appena viene caricata la pagina, quindi bisogna modificare il tag body aggiungendo il parametro "onload" con il richiamo alla funzione:
Se si vuole fare in modo che in ogni pagina si possano pre-caricare delle immagini diverse, è possibile modificare la funzione in questo modo:
Si dovrà poi passare l'array delle immagini quando si richiama la funzione:
Per risolvere questo problema, è possibile pre-caricare le immagini in JavaScript appena viene caricata la pagina in questione.
Per prima cosa bisogna creare la funzione in JavaScript che si occuperà del preload vero e proprio:
function preloadImages(){ var images = ['/images/image1.jpg','/images/image2.jpg','/images/image3.jpg']; //Array contentente il percorso di tutte le immagini da pre-caricare var img_l = images.length; if(img_l>0){ var img = new Image(); for(var i=0;i<img_l;i++){ img.src = images[i]; } } }
Questa funzione dovrà essere eseguita appena viene caricata la pagina, quindi bisogna modificare il tag body aggiungendo il parametro "onload" con il richiamo alla funzione:
<body onload="preloadImages();">
Se si vuole fare in modo che in ogni pagina si possano pre-caricare delle immagini diverse, è possibile modificare la funzione in questo modo:
function preloadImages(images){ var img_l = images.length; if(img_l>0){ var img = new Image(); for(var i=0;i<img_l;i++){ img.src = images[i]; } } }
Si dovrà poi passare l'array delle immagini quando si richiama la funzione:
<body onload="preloadImages(['/images/image1.jpg','/images/image2.jpg','/images/image3.jpg']);">
Guida scritta da Mattia il 26/07/2011.