浏览器缓存控件:Internet Explorer 和 Chrome 之间的不同行为
Browser Cache control: Different behavior among Internet Explorer and Chrome
我一直在解决一个问题,以防止在单击浏览器后退按钮时提供缓存的服务器页面。通过 This question 并设置适当的响应 headers(下)工作,但 IE 和 chrome 之间存在不一致的行为。
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
IE:
当我使用后退按钮
返回页面后,服务 'Webpage has expired'
Chrome:
不会说页面已过期,也不提供缓存页面,但即使在后退按钮上也会发出新的服务器请求 - 有点像点击刷新。
我的问题:这是他们回应 headers 的方式吗?是否有办法实现一致的结果?主要目的是避免跨浏览器在后退按钮上提供缓存页面。
嗯,其实我已经想通了。 Chrome 上的行为有所不同,因为 Chreme Dev Toolbar 上的浏览器设置明确禁用缓存,如下面的屏幕截图所示。这导致页面访问服务器而不是显示页面已过期。
如果禁用此选项,我会看到“确认重新提交表单”页面。
我一直在解决一个问题,以防止在单击浏览器后退按钮时提供缓存的服务器页面。通过 This question 并设置适当的响应 headers(下)工作,但 IE 和 chrome 之间存在不一致的行为。
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
IE: 当我使用后退按钮
返回页面后,服务 'Webpage has expired'Chrome: 不会说页面已过期,也不提供缓存页面,但即使在后退按钮上也会发出新的服务器请求 - 有点像点击刷新。
我的问题:这是他们回应 headers 的方式吗?是否有办法实现一致的结果?主要目的是避免跨浏览器在后退按钮上提供缓存页面。
嗯,其实我已经想通了。 Chrome 上的行为有所不同,因为 Chreme Dev Toolbar 上的浏览器设置明确禁用缓存,如下面的屏幕截图所示。这导致页面访问服务器而不是显示页面已过期。
如果禁用此选项,我会看到“确认重新提交表单”页面。