我们发现完整的浏览器缓存是我们外联网出现问题的原因。它只影响我们的少数用户,但我们想提醒他们解决问题,并就如何自行解决问题给他们一些指导。
我们想要使用与GMail使用的系统类似的系统。当它检测到您的浏览器的缓存已满时的行为不正常时,它会显示一条警告消息,告知用户他们的缓存已满,并且可能导致GMail出现问题,以及指向Gmail Help page on clearing your browser's cache
有没有人知道是否有任何资源,或者如何使用JavaScript来检测浏览器的缓存 full 表现不佳的示例?
感谢。
澄清:我想,我们实际上要检测的是,缓存是否已满,而不是我们在服务器端配置的脚本是否已存储在缓存中,正在从服务器重新请求 - 以这种方式使浏览器表现得很奇怪,或者就像它的缓存行为不正常一样。
进一步说明:感谢大家对缓存的更新。我们的脚本正在发送正确的标题,我们只在IE6和IE7中看到这个问题 - Mozilla和WebKit浏览器似乎没有受到影响 - 但我仍然不确定我们如何使用JavaScript和/或XmlHttpRequest检查是否从缓存中检索了一个对象,从而让我们检查缓存是否表现不佳。
答案 0 :(得分:5)
浏览器的缓存 不会 如果已满,则会导致问题...带有一些小注释。
expires headers
以及如何在更改脚本时更改文件的URL路径以确保“打破“缓存”)<强> 更新 强> 根据您的说明,您需要确保发送给客户端的任何脚本正确缓存...这意味着:
答案 1 :(得分:0)
这可能无法正常工作。但它只是一个想法:
var img = new Image();
(new Image).src = "imageWithFarFutures.png";
window.onload = function(){
document.getElementById("someIframe").src = "imageWithFarFutures.png";
// NOW if the server DOES get a FRESH request for "imageWithFarFutures.png"
// wouldn't it mean that the browser has kicked it out of its cache?
};
答案 2 :(得分:0)
考虑发送一个标题,让您的应用程序永远不会缓存您的内容,并让它立即过期。