Кэширование картинок. Javascript.

  • Автор темы Temir
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

Temir

Гость
#1
Здравствуйте Уважаемые!

Вопрос такого плана:
я хочу реализовать кэширование картинок при загрузке. Т.е. при заходе на сайт, необходимые изображения записываются в массив, хранимый в памяти компьютера пользователя.В таком случае при загрузке другой страницы эти картинки уже не будут подгружаться с сервера.

Возможно ли такое вообще? или все уже реализовано кэшем браузера.

Нашел такой код:
function MM_preloadImages() {
var d=document;
if(d.images) {
if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
for(i=0; i<a.length; i++)
if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}
}
}

Решает ли он данную проблему или это вообще не то... Если то, можно ли пояснить механизм работы данного скрипта.
Спасибо.
 
A

Artexoid

Гость
#2
Для: Temir

Нет

Начнём с того что почти 100% сайтов присылают браузеру вот такую штуку:

Код:
<meta http-equiv="Cache-Control" content="no-cache"> 
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
Эти заголовки запрещают браузеру кешировать!!! При переходе на другую страницу все картинки загрузятся вновь.

Само кэширование обусловлено самим браузером. Почти у всех браузерах есть такая удобная ф-ция "Кешировать картинки". Если пользователь её включает, браузер начинает себя вести именно так как Вы описали!!

Эта функция
Код:
function MM_preloadImages()
{ 
var d=document;
if(d.images) 
{
if(!d.MM_p) 
d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments;
for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0)
{ 
d.MM_p[j]=new Image; 
d.MM_p[j++].src=a[i];
}
}
}
полезна в случае если у вас на странице активные картинки. То есть при наведении на картинку она меняется ну или в подобных случаях... Она выполняет подгрузку картинок еще до их использования. Но они лежат в кеше до перехода на другую страницу или обновления этой.!!!
 
M

mariner

Гость
#3
<script type="text/javascript">

pic1=new Image();
pic1.src="/pics/image01.gif";

pic2=new Image();
pic2.src="/pics/image02.gif";

...
</script>
 
A

Artexoid

Гость
#4
Для: mariner

Это тоже не решит. Я пробывал способов 6 (разными скриптами). В IE есть такой косяк. Он забывает смотреть в кешь и загружает картинки заново.
 
Статус
Закрыто для дальнейших ответов.