检测图像是否被缓存

时间:2013-04-10 17:09:29

标签: javascript image browser-cache image-preloader

要知道图像是否在缓存中,您可以在Firefox中使用mozIsLocallyAvailable()。 chrome或IE没有这样的东西。

你知道其他任何方式吗?

我试图用Ajax检查“304 not modified”,但Ajax似乎有自己的缓存系统。 (每次关闭浏览器时,都会删除ajax缓存)

我的目标是检测访问者何时清理缓存,这样我就可以重启我的“后台预加载”系统(这是一个包含大量图像的游戏)。我听说过一些关于AppCache的内容,但还不足以知道它是否可以存储多达40mb的图像,以及是否可以在页面加载后下载它们。

问候。

2 个答案:

答案 0 :(得分:1)

鉴于你所说的最终目标,我认为我所做的是始终发生后台(预)加载过程,如果它没有在250毫秒或500毫秒内完成,那么一条消息,告诉用户发生了什么。如果所有40MB的图像都在很短的时间内加载,那么您可以相当肯定它们来自缓存。 :-)相反,如果他们需要超过500毫秒(半秒)加载,你真的不在乎是因为他们是被下载还是由于某种原因用户的缓存真的很慢,你仍然可能想要告诉他们发生了什么。

答案 1 :(得分:0)

  

我的目标是检测访问者何时清理缓存,以便重新启动“后台预加载”系统

您可以在每个会话中预加载图像。如果浏览器将它们放在缓存中,则不会再次加载它们。只需确保发送right headers