3

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

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

但是,如果我返回或前进,取决于用户活动的页面。这些页面不是通过 AJAX 加载的,它们都是从服务器或window.location.href客户端作为重定向加载的。

我在使用 Firefox bfcache 的本地主机上遇到问题。现在,我在调度方法中将 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 中检查网络控制台时,到期日期是 1970 年的某个时候。

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

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

我对服务器调用的方向进行了所有必要的控制,因此如果您刷新这些页面中的任何一个,它们会将您重定向到已注销的主页,但我似乎无法设法强制刷新这些页面。

4

0 回答 0