Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как заставить браузер использовать закэшированное изображение? (https://javascript.ru/forum/misc/4686-kak-zastavit-brauzer-ispolzovat-zakehshirovannoe-izobrazhenie.html)

fog 13.08.2009 13:17

Как заставить браузер использовать закэшированное изображение?
 
Привет

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

Точно вопсроизвести могу так (только в Firefox): Загружаю страницу - всё работает, нажимаю Ctrl+F5 - страница перегружается и после этого все картинки грузятся по два раза - один раз прелоад, второй раз когда я присваиваю значение SRC нужному IMG.

У некоторых пользователей этот эффект наблюдается и в Google Chrome и без перезагрузки страницы, просто открыв.

Может я не так прелоаденый файл использую или есть варианты решения моей проблемы?

Пример кода
http://fog.od.ua/files/load/

fog 13.08.2009 13:19

То, что картинки грузятся два раза - видно как сниффером, так и по тому, что после появления в строке статуса Waiting - новая картинка всё ещё подгружается.

Если обновить нажав F5 - всё опять работает нормально.

Kolyaj 13.08.2009 13:23

Просто скрывайте картинку пока она грузится и показывайте по onload.

fog 13.08.2009 13:41

Тоже, конечно, вариант...

fog 13.08.2009 15:10

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

То что я показал - это лишь кусочек кода результата. На самом деле скрипт должен работать так:

- По умолчанию загружено изображение
- Пользователь кликает на превью следующего
- Следующее начинает прелоадиться, а в этот момент на экране появляется индикатор загрузки "крутилка", пока он крутится - предыдущее изображение отображается.
- Когда следующее изображение загрузилось - Предыдущее плавно растворяется и на его месте "всплывает" следующее.

Тоесть скрыть изображение, присвоить ему новый SRC и показать когда оно загрузится - я не могу, потому что слишком долго на экране ничего не будет (когда первое уже исчезнет а второе ещё не появится).

Kolyaj 13.08.2009 15:40

Сделайте 2 изображения и меняйте их.


Часовой пояс GMT +3, время: 18:59.