Will an image with style=“display: none” still be downloaded and cached?

前端 未结 3 1625
逝去的感伤
逝去的感伤 2021-02-19 02:19

I\'m trying to figure out a way to cache the next and previous images in my gallery script ... I\'m wondering if this is a good way to do it. Also, is there any way to manually

相关标签:
3条回答
  • 2021-02-19 02:36

    I’m not sure about cache behaviour with display: none (it probably varies between browsers), but you can get an image into the browser’s cache without displaying it by creating an image objects in JavaScript. The image won’t display until you add it to the page.

    var image = new Image();
    image.src = 'example.com/image'
    

    Regarding “is there any way to manually specify the cache time for the downloaded image?”, there is, but that’s dealt with in the HTTP response that delivers the image to the browser. Google has a good primer on that: https://developers.google.com/speed/articles/caching

    0 讨论(0)
  • 2021-02-19 02:40

    I think it will be downloaded, and hence cached, because the images may be loaded before the CSS has even arrived.

    If browsers turn out to be too smart, something like position:absolute; left:-9999px; top:-9999px should be a nice alternative.

    0 讨论(0)
  • 2021-02-19 02:47

    display: none images will be downloaded and cached on the client. However, JavaScript already has a well-defined way of preloading images:

      var nextImage = new Image();
      nextImage.src = "your-url/newImage.gif";
    

    This will preload an image without displaying it to the user.

    0 讨论(0)
提交回复
热议问题