如果我使用image()加载背景图像,它会被缓存吗?

If I load a background image using Image(), will it be cached?

本文关键字:缓存 图像 背景 image 加载 如果      更新时间:2023-09-26

我有两个页面,在第一个页面加载后,我使用javascript图像对象,像这样:

var workshopBack = new Image();
workshopBack.src = "/images/wBack.jpg";

wBack.jpg是下一页的背景,但它太大了,所以我在第一页本身之前加载它。现在我的问题是,当用户导航到下一个页面时,背景会从缓存中加载还是再次下载?

正常情况下,加载图像会使其在缓存中保存一段时间,但不能保证。

对于浏览器缓存应该如何工作没有标准,它只是按照浏览器供应商所知道的最好方式实现的。由于图像的大小,有些浏览器完全有可能实现尽快删除图像。你只需要在不同的浏览器中进行测试,看看它们的反应如何。

另外,缓存的状态也可能影响结果。即使您的浏览器保留了图像,其他用户可能在缓存中有不同的文件集,或者有不同的缓存限制,这使得浏览器删除了图像。你只能确保它在大多数情况下都能工作,不能保证它在所有情况下都能工作。