浏览器似乎忽略了我的缓存控件Python响应头

时间:2014-01-25 19:27:44

标签: python ajax header no-cache

我目前正在使用webapp2 Python在google-app-engine上开发应用。我正在开发Mac,Lion,并在Firefox 26,Safari 6.02和Google Chrome中进行测试。

我有一个带登录按钮的主页。您单击登录我AJAX表单到服务器,成功后我使用window.location.replace重新加载主页减去登录按钮并提供对用户页面的访问。在注销I AJAX时,调用服务器上的处理程序,转储会话,并在成功时使用另一个window.location.replace使用登录按钮重新加载主页。

但是,如果我返回或转发,则会显示来自用户活动的页面。这些页面不是通过AJAX加载的,它们都是从服务器加载的重定向或从客户端加载为window.location.href

我在使用Firefox bfcache的localhost上遇到问题。现在我已将我的调度方法中的Python标头设置为:

    self.response.headers["Pragma"]="no-cache"
    self.response.headers["Cache-Control"]="no-cache, no-store, must-revalidate, pre-check=0, post-check=0"
    self.response.headers["Expires"]="Thu, 01 Dec 1994 16:00:00"
    self.response.headers['Cache-Control'] = 'public, max-age=0'

当我在Firebug中检查Net控制台时,到期日期是1970年。

但是,bfcache似乎按照其规范冻结页面,并且不遵守过期并在单击后退按钮时重新加载页面。

这是因为我在localhost上还是使用http进行测试?我真的很困惑这整个bfcache的事情。我知道我可以在浏览器中使用onpageshow事件来处理这个客户端,但如果可能的话,我宁愿对这个服务器端进行排序。

我拥有服务器调用方向的所有必要控件,因此如果刷新任何这些页面,他们会将您重定向到已注销的主页,但我似乎无法设法强制这些页面刷新

0 个答案:

没有答案