【发布时间】:2017-01-04 21:27:32
【问题描述】:
preload Image files in JavaScript 的标准方式似乎是这样的:
var images_to_load = ['img1.png', 'img2.png', 'img3.png'];
for(var i=0; i<images_to_load.length; i++){
var img = new Image();
img.src = images_to_load[i];
}
这会通过让浏览器请求图像文件来将图像加载到缓存中。但是,不能保证图像文件会保留在缓存中,就像cache expiration time is dependent on server settings and browser settings。
如果将 Image 对象保留在内存中,是否可以保证图像在页面关闭之前一直保留在缓存中?这是一个基本示例:
var images_to_load = ['img1.png', 'img2.png', 'img3.png'];
var loaded_images = [];
for(var i=0; i<images_to_load.length; i++){
var img = new Image();
img.src = images_to_load[i];
loaded_images.push(img);
}
【问题讨论】:
-
为什么不用localstorage、webstorage?
-
据我了解localStorage/sessionStorage不能存储图片文件。我知道有一些方法可以将图像编码为 DataURI,但这不是解决我的特定问题的理想解决方案。
-
我试图澄清粗体字。它最初的措辞对我来说听起来很奇怪(我的大脑在解析句子时绊倒了)。我发表此评论是为了向 OP 确认我没有意外更改粗体声明的含义。
-
我很欣赏这个变化;措辞很尴尬。我试图改变它以保持更高的清晰度并保持原来的意思(这是询问这是否可能)。