【发布时间】:2017-06-18 11:00:24
【问题描述】:
我正在尝试找到一种方法来(几乎)保证位于服务器上的图像文件在初始加载期后可以毫无延迟地附加到 DOM。
我一直在使用标准的预加载技术,例如:
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];
}
但我了解到,这是否有效取决于服务器和浏览器设置等因素,以及要加载的图像数量。
我想知道是否将图像存储在内存中,然后将图像对象直接附加到 DOM 会改变预加载的行为方式。这会绕过缓存吗?例如:
var images_to_load = ['img1.png', 'img2.png', 'img3.png'];
var images = [];
for(var i=0; i<images_to_load.length; i++){
var img = new Image();
img.src = images_to_load[i];
images.push(img);
}
document.getElementById('target').appendChild(images[0]);
(相关:有哪些工具可用于测试这种行为?)
【问题讨论】:
-
我认为您需要进一步澄清。原图在哪里?该数组仅包含名称。这些文件在客户端机器上吗?或者他们在服务器上,你从客户端加载它?如果有的话,服务器端平台是什么?
-
我已经澄清,图片文件在服务器上,需要客户端加载。
标签: javascript image caching