我目前正在使用webapp2python在googleappengine上开发一个应用程序。我正在Mac、Lion上开发,并在Firefox26、Safari6.02和Google Chrome上进行测试。在
我有一个带有登录按钮的主页。您单击login I AJAX将表单发送到服务器,成功后我使用窗口.位置.替换重新加载主页减去登录按钮并提供对用户页面的访问。注销时,我用AJAX调用服务器上的处理程序,转储会话,成功时使用另一个窗口.位置.替换使用登录按钮重新加载主页。在
但是,如果我返回或前进,则会显示用户活动中的页面。这些页面不是通过AJAX加载的,它们要么作为重定向从服务器加载,要么作为window.location.href从客户端加载。在
我在本地主机上使用Firefox bfcache时遇到问题。现在,我在dispatch方法中将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进行测试?我真的很困惑这整件事。我知道我可以在浏览器中使用onpageshow事件来处理这个客户端,但是如果可能的话,我宁愿对服务器端进行排序。在
我对服务器调用的方向有所有必要的控制,所以如果你刷新这些页面中的任何一个,它们会将你重定向到已注销的主页,但我似乎无法强制这些页面刷新。在