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);
}
最佳答案
不,没有任何保证。
JavaScript内存中的内容与浏览器中缓存中的内容完全不同。一种可能的解决方案是在缓存过期之前创建图像的新实例。如果重复此过程,则可以确保图像在缓存中始终可用。