前言
我的Web应用程序(关键词:HTML,JavaScript,jQuery; 必须支持的浏览器:IE8+,Chrome,FF)需要展示来自一种“WebCam”的实时图像数据。这个“WebCam”集成了一个Web服务器,提供实时图像数据作为BMP
。
图像数据通过设置img
标记的src
属性进行“下载”。
问题
我想在客户端分析图像数据。为此,我希望使用XMLHttpRequest
预先下载图像(使用提供的stackoverflow答案),然后更新img
标记的src
属性。我理解浏览器应该使用通过XMLHttpRequest
下载的缓存图像数据。
问题是,浏览器(IE8 +,FF和Chrome)会发出另一个请求以重新下载图像(即它不使用缓存数据或者数据一开始就没有被缓存)。
如何使浏览器缓存数据并使用它而不是发出另一个请求?
附录
服务器为Chrome发送Cache-Control:max-age = 5,public
,并为所有其他浏览器发送Cache-Control:no-store,max-age = 5
。
在Chrome中,我可以通过发送304 Not Modified
来处理第二个请求。然后浏览器将使用缓存的图像。但是在所有其他(提到的)浏览器中,这种方法不起作用。
更新1
我知道,我可以使用Data URI Scheme来更新src
属性。然而,这对于IE8不起作用(请参见上面的要求),因为IE8仅支持最大32KB。
<img src="...
插入它,这样你就不必担心缓存的问题了。 - Daniel W.