如果再次调用预加载器,是否会再次下载预加载的图像?

时间:2013-03-03 21:30:19

标签: javascript image image-preloader

我正在制作网页闪卡以帮助我学习。当我问一个问题时会显示一个图像,当我选择答案时,会显示另一个图像。在选择答案后,我不是等待答案图像下载,而是在显示问题图像后立即开始预应答答案图像。我的预加载器是:

function preloadImage(src) {
    var image = new Image();
    image.src = src;
}

我的理解是,这会将图像文件缓存在浏览器中。通过将文件名分配给图像标签的src来显示图像文件。一旦图像文件与Image()对象相关联,那么当该文件被分配给src时,浏览器就会从缓存中提供图像。

如果我对我的回答感到满意,那么闪卡会从卡座上拉出来,如果我对我的回答不满意,那么闪卡会回到包装中,稍后会被问到。

如果再次询问返回到卡座的闪卡,则会再次调用预加载以获取答案图像。

我的问题是:对我的预加载器的第二次和后续调用会导致从服务器下载文件以分配给新的Image()对象,还是会从浏览器缓存中读取。

非常感谢提前

1 个答案:

答案 0 :(得分:1)

取决于服务器配置。任何文件都可以设置为缓存。大多数时候图像被设置为长时间缓存,因此很有可能再次下载它。我会建议您预先加载所有图像,或者至少大部分图像,具体取决于您的应用程序设置方式,然后才能播放。这样,用户就会受到轻微干扰。

更简单一点,不,后续调用该方法不会强制下载(假设服务器设置了正确的expires头)。