Problem wygląda następująco:
Mam kod preloadujący obrazki:
var dlogosc_paska_postepu = 300 var aktualna_strona; var strony_gazety = new Array("obrazek1" , "obrazek2") if (document.images) { var obrazki = new Array(),coverage = Math.floor(dlogosc_paska_postepu/strony_gazety.length),aktualna_ilosc = 0 var zaladowane = new Array(),i,covered,timerID var pozostala_dlogosc = dlogosc_paska_postepu%coverage } function laduj_obrazki() { for (i = 0; i < strony_gazety.length; i++) { obrazki[i] = new Image() obrazki[i].src = strony_gazety[i] } for (i = 0; i < obrazki.length; i++) { zaladowane[i] = false } ilosc = obrazki.length; sprawdz_wyslane() } function sprawdz_wyslane() { if (aktualna_ilosc == obrazki.length) { show(); return } for (i = 0; i <= obrazki.length; i++) { if (zaladowane[i] == false && obrazki[i].complete) { zaladowane[i] = true aktualna_ilosc++ temp = parseInt((aktualna_ilosc/ilosc)*100); document.getElementById('postep').innerHTML=temp + '% [' + aktualna_ilosc + '/' + ilosc + ']'; } } timerID = setTimeout("sprawdz_wyslane()",10) }
Po wczytaniu obrazków wywoływan jest funkcja show() która ma wyswietlic 1 obrazek z tablicy:
document.getElementById('bodywrapper').innerHTML='<img src="' + strony_gazety[0] + '">';
niestety pod FF kończy się to tym że obrazek zaczyna się od nowa wczytywać.
Pod IE od 6.0 wzwyż, nowym Google Chrome oraz nową Operą obrazek wczytuje się już z pamięci podręcznej. Niestety FireFox zachowuje się tak jakby nie widział wczytanych obrazków. Widzi je w pamięci podręcznej dopiero po przeładowaniu. Ma ktoś pomysł dlaczego tak się dzieje? jeżeli znacie sposób na to aby nie trzeba było odświeżać strony aby obrazki pod FF wczytywały się z pamięci podręcznej ty byłbym wdzięczy na pomoc.