Будет ли загружено и кэшировано изображение со стилем = "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 должно быть хорошей альтернативой.