2

我正在使用 PHP 开发一些软件,并且正在尝试使其有效地利用 HTTP 缓存。但是,我最近遇到的问题之一是登录后,登录之前访问的页面被缓存并且不像登录一样。

如果 PHP 和客户端之间存在 HTTP 缓存,这尤其是一个问题。如果我将缓存限制器设置为始终为“公共”,则页面可能将始终被缓存(即使通过代理缓存)。如果我在未登录时将缓存限制器设置为“公共”,在登录时设置为“私有”在,我目前遇到的问题可能仍然会发生。如果我将缓存限制器设置为始终是私有的,代理缓存根本不会受益,并且我目前遇到的问题可能仍然会发生。

这个问题的理想解决方案是什么?有没有办法在用户登录后让网络浏览器“重试”?对于代理缓存,我知道有一些方法可以根据传入的 cookie 进行缓存,所以我相信这可以解决部分问题。但是从网络浏览器的角度来看,这个问题又如何呢?

4

1 回答 1

1

这里没有一个很好的解决方案,但你有几个选择:

  1. 通过使用 AJAX 通过 JSON 服务请求登录状态,无论您的用户是否登录,都可以使页面真正相同。
  2. 不要缓存页面,只缓存脚本、样式和图像。HTML 的浏览器缓存仅在您的用户不断查看相同的页面而不期望不同的结果时才有用。这是你的用例吗?如果是这样,您可能已经在使用 AJAX 来提供实时更新,并且实现选项 #1 可能不是一个巨大的飞跃。
于 2013-07-24T15:59:45.423 回答