Будет ли загружено и кэшировано изображение со стилем = "display: none"?
Я пытаюсь выяснить способ кеширования следующих и предыдущих изображений в моей галерее script... Мне интересно, если это хороший способ сделать это. Кроме того, есть ли способ вручную указать время кеша для загруженного изображения?
Ответы
Ответ 1
display: none
изображения будут загружаться и кэшироваться на клиенте. Однако JavaScript уже имеет четко определенный способ предварительной загрузки изображений:
var nextImage = new Image();
nextImage.src = "your-url/newImage.gif";
Это предварительно загрузит изображение, не показывая его пользователю.
Ответ 2
Я не уверен в отношении поведения кэша с display: none
(он, вероятно, меняется между браузерами), но вы можете получить изображение в кеш браузеров, не отображая его, создав объекты изображения в JavaScript. Изображение не будет отображаться, пока вы не добавите его на страницу.
var image = new Image();
image.src = 'example.com/image'
Относительно "есть ли способ вручную указать время кеша для загруженного изображения?", есть, но это касается ответа HTTP, который доставляет изображение в браузер. У Google есть хороший пример: https://developers.google.com/speed/articles/caching
Ответ 3
Я думаю, что он будет загружен и, следовательно, кэширован, потому что изображения могут быть загружены до того, как CSS даже придет.
Если браузеры оказываются слишком умными, что-то вроде position:absolute; left:-9999px; top:-9999px
должно быть хорошей альтернативой.