Кэширование ихображений (css)

DeadMorozBLR

Новичок
Кэширование изображений (css)

вопрос следующий:

есть элемент (TABLE), у которого есть три состояния (active, inactive и hover). в зависимости от состояния элемент имеет соответствующее свойство className.

для каждого из классов указано изображение для фона, например:

.tab_active .tab_left{
background-image: url(../images/tab_active_left.gif);
}

.tab_inactive .tab_left{
background-image: url(../images/tab_inactive_left.gif);
}

и т. д.

почему каждый раз при изменении className браузер (IE) запрашивает файлы *.gif с сервера? и как этого избежать.

P.S. браузер не загружает файлы, а только запрашивает их с заголовками типа

If-Modified-Since: Tue, 01 Feb 2005 15:35:42 GMT
If-None-Match: "0-9f-41ffa1ce"

и получает в ответ 304 Not Modified
 

Кром

Новичок
Для этого все картинки нужно предварительно закачать, а потом уже с помощью JavaScript подставлять в нужную область.
Подробности легко можно узнать на google.com
 

DeadMorozBLR

Новичок
спасибо, подробности я прекрасно себе представляю, просто хотелось сделать всё комплексно, т.е. одним изменением класса заменять все изображения сразу
 

virakochi

Устал
Когда-то боролся с этой же проблемой.. Она наблюдалась только в ИЕ. В остальных браузреах все было нормально.. Но выход из ситуации оказался именно в джаваскрипте.
 

Orlis

Guest
настраивать надо сервер, а не жабу

броузер получает картинки с сервера без заголовка Expires, он не имеет права сам телепатически догадаться, динамические это картинки или простые статические файлы

запиши в .htaccess
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/gif "access plus 1 week"
</IfModule>
 

DeadMorozBLR

Новичок
хорошо, но дело в том, что изображения-то находятся в фоне элемента, т.е. полюбому их нужно будет указывать через:
td.style.backgroundImage = 'url(' + cachedImage.src + ')'

не то ли это самое?
 

virakochi

Устал
Не совсем. Если cachedImage - уже закачанная картинка.
Хотя для того, чтобы ответить точно, надо лезть в исходники ИЕ.
 

Markus®

Guest
DeadMorozBLR
На CSS это очень просто делается.

Делаешь на одной картинке фон для актив и неактив.
.tab_active .tab_left{
background-image: url(../images/tab_active_inactive_left.gif);
}

.tab_inactive .tab_left{
background-position: 0px -25px;//это так к примеру
}
background-position: x y;
 

DeadMorozBLR

Новичок
Markus®
так не пойдет, т.к. фон - растягиваться должен
[============]
{---------------------}
(###########)
 
Сверху