我正在尝试在会话之间使用不同的背景图像。因此,如果用户在不同的会话中打开我的网站(例如,关闭并重新打开浏览器或等待半小时),他们将看到不同的背景图像。
以下是我目前正在做的事情。
我创建了一个处理HttpHandler
的{{1}}类。
首先检查background.axd
中是否有一个名为BackgroundIndex
的条目,如果没有,它会随机选择我所拥有的图像,而不是将其索引存储到HttpContext.Current.Session
中。对象。
然后它将索引与Session
标头的值进行比较,如果匹配,只需返回If-None-Match
的响应。
如果不匹配,或者请求中没有“If-None-Match”标头,它会将图像文件的内容写入响应并返回,并将304 Not Modified
标头设置为索引图像。
最后,我将我网站的背景图片设置为我的CSS文件中的ETag
。
问题是,它运作正常,但效率不高。
可以从缓存加载当前会话的图像文件。但是,如果会话发生变化,浏览器必须从我的服务器下载图像,即使之前已经下载过。
此外,浏览器还必须提出额外请求,以检查缓存中的图像是否已过期。
对此有更好的解决方案吗?
抱歉我的英语不好。