Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果再次调用预加载程序,是否再次下载预加载的图像?_Javascript_Image_Image Preloader - Fatal编程技术网

Javascript 如果再次调用预加载程序,是否再次下载预加载的图像?

Javascript 如果再次调用预加载程序,是否再次下载预加载的图像?,javascript,image,image-preloader,Javascript,Image,Image Preloader,我正在制作一个网页抽认卡来帮助我学习。当我提问时,会显示一个图像,当我选择回答时,会显示另一个图像。在选择答案后,我不会等待答案图像下载,而是在显示问题图像后立即开始预加载答案图像。我的预加载程序是: function preloadImage(src) { var image = new Image(); image.src = src; } 我的理解是,这会在浏览器中缓存图像文件。通过将文件名指定给图像标记的src来显示图像文件。一旦图像文件与image()对象关联,则当该

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

function preloadImage(src) {
    var image = new Image();
    image.src = src;
}
我的理解是,这会在浏览器中缓存图像文件。通过将文件名指定给图像标记的src来显示图像文件。一旦图像文件与image()对象关联,则当该文件分配给src时,浏览器将从缓存中提供图像

如果我对我的答案感到满意,抽认卡将从卡片组中取出,如果我对我的答案不满意,抽认卡将返回到包装中,稍后将被询问

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

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


提前多谢

取决于服务器配置。任何文件都可以设置为缓存或不缓存。大多数情况下,图像被设置为缓存很长一段时间,因此很有可能不再下载。我建议您在可以播放之前,根据应用程序的设置,预加载所有图像,或者至少大部分图像。这样,对用户来说会有一些小的干扰


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

取决于服务器配置。任何文件都可以设置为缓存或不缓存。大多数情况下,图像被设置为缓存很长一段时间,因此很有可能不再下载。我建议您在可以播放之前,根据应用程序的设置,预加载所有图像,或者至少大部分图像。这样,对用户来说会有一些小的干扰

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