我们发现浏览器缓存已满是导致酒店后台出现问题的原因。它只影响我们的一小部分用户,但我们希望提醒他们该问题,并为他们提供一些如何自行解决问题的指导。
我们希望使用与 GMail 使用的系统类似的系统。当它检测到您的浏览器缓存已满表现不正常时,它会显示一条警告消息,告诉用户其缓存已满,这可能会导致 GMail 出现问题,并附有指向有关清除浏览器缓存的 Gmail 帮助页面 http://mail.google.com/support/bin/answer.py?answer=8840#.
有谁知道是否有任何资源,或者如何使用 JavaScript 检测浏览器缓存 full 行为不良的示例?
Thanks.
澄清:我想,我们实际上想要检测的不是缓存是否已满,而是我们已配置服务器端存储在缓存中的脚本是否正在从服务器重新请求- 浏览器的行为异常,或者好像它的缓存没有按应有的方式运行。
进一步澄清:感谢大家对缓存的更新。我们的脚本是用正确的标头发送的,我们只在 IE6 和 IE7 中看到这个问题 - Mozilla 和 WebKit 浏览器似乎不受影响 - 但我仍然不确定我们到底如何使用 JavaScript 和/或 XmlHttpRequest 检查是否从缓存中检索到对象,从而让我们检查缓存是否表现不佳。
浏览器的缓存will not如果它已满,就会出现问题……有一些小注释。
- 如果浏览器缓存已满,浏览器只需下载新内容,而不是从本地缓存中提取内容。 (例如速度较慢)
- 如果浏览器缓存包含无效数据(例如 JavaScript 文件的旧副本),那么您可能会遇到问题。 (不是因为缓存已满,而是因为您没有为用户提供新文件(Google:
expires headers
以及如何在更改脚本时更改文件的 URL 路径以确保“破坏”缓存))
- 在 Internet Explorer 中,当您将下载文件(例如 Excel 电子表格)推送给用户时,它必须进入缓存才能工作(IE 错误) - 我是not sure如果文件大于用户的总缓存,如果这导致文件存储和加载出现问题(Stackers 请随时确认这是一种方式还是另一种方式)
Update:根据您的澄清,您需要确保发送给客户端的任何脚本都是适当地缓存...这意味着:
- Change the URL to your scripts when you want a new version to be downloaded (e.g.)
- http://example.com/scripts/latestThing.js?ver=3425 http://example.com/scripts/latestThing.js?ver=3425
- 其中“ver”是从版本控制系统中提取的,以确保您始终强制浏览器下载新副本any是时候改变你的剧本了。
- 一旦确定 URL 发生变化,您就可以发送缓存标头,告诉浏览器将文件缓存很长一段时间(例如,您的 JS 库文件(例如 jQuery)可能不会每小时、每天、每周甚至每小时都发生变化)月)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)