【问题标题】:How Do I Ensure IE 8 will Never Cache My Data如何确保 IE 8 永远不会缓存我的数据
【发布时间】:2011-05-11 15:00:07
【问题描述】:

我有以下 2 页:

  • check-cookie.html,检查用户是否有给定的 cookie
  • set-cookie.html,设置一个给定的用户cookie

在 IE 8 中,我使用空缓存/cookie 文件执行以下操作:

  1. 加载 check-cookie.html。正如预期的那样,我得到了“无 cookie”输出
  2. 加载set-cookie.html,设置用户cookie
  3. 加载 check-cookie.html。我得到了正确的“cookie present”输出
  4. 删除我的 cookie 并清除缓存。
  5. 重新加载 check-cookie.html。即使我的 cookie/缓存已清除,我仍然会得到“cookie present”输出。
  6. 关闭 IE8 浏览器并重新打开,加载 check-cookie.html。我现在得到一个“无 cookie”输出。

这在此处的 Microsoft 网站上有记录:http://windows.microsoft.com/en-us/Windows7/Delete-webpage-history

本质上,即使缓存文件已被清除,其中一些文件仍存储在内存中,因此您需要关闭浏览器才能完全清除缓存。有谁知道如何绕过这个 IE 限制?

仅供参考,我正在使用以下无缓存标头: 缓存控制:无缓存,无存储,必须重新验证,检查后 = 0,预检查 = 0 Pragma: 无缓存

【问题讨论】:

    标签: caching internet-explorer-8


    【解决方案1】:

    您的 cookie 可能是会话 cookie,而不是持久性 cookie。 IE 中的“缓存”指的是您的 Internet 临时文件夹。会话 cookie 仅存储在内存中,当浏览器运行时,只有持久性 cookie 存储在缓存中。

    在 IE8 中没有删除所有会话 cookie 的选项。删除 cookie 功能仅删除“存储在您的计算机上”的 cookie,即 Internet 临时文件夹中的持久性 cookie。

    您的会话 cookie 没有被缓存,我认为困扰您的是您对“缓存”的期望/解释。

    您是否有更高级别的问题或您认为需要解决的问题?我认为会话 cookie 没有问题,只有在浏览器退出时才被丢弃。什么场景?

    【讨论】:

    • 感谢李的详细回复。这些是持久性 cookie 而不是会话 cookie(即使在 Firefox/Chrome 中关闭浏览器后它们仍然存在)。这里的问题是用户希望启用/禁用的功能存储在他们的 cookie 中,因为它们是匿名的。清除该数据应该会导致页面上的设置重置为默认值,但它们会继续保留在 IE 中。这是 1) 跨浏览器不一致和 2) 与用户期望的不一致。你对我还能尝试什么有什么建议吗?
    • 啊,好的。那么你可能没有使用 Expires 而只使用 Max-age (mrcoles.com/blog/cookies-max-age-vs-expires) - 现在我希望我在关于持久 cookie 的回答中留下我的声明是那些使用 Expires 标头的,但我认为它可能一直在光顾!
    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 2016-09-13
    • 2010-11-18
    • 2010-11-06
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多