internet-explorer - 使用后退按钮: IE and Safari not reading from cache whereas Firefox and Chrome do

标签 internet-explorer http caching browser safari

当用户离开页面并使用浏览器的后退按钮返回该页面时,我希望避免 GET 请求。在 Firefox 和 Chrome(最新版本)中无需任何特殊处理即可正常工作。

但是,Safari 和 IE 在使用后退按钮返回上一页时都会执行 GET 请求。

我摆弄了控制缓存行为的 header (Last-Modified、Expires、Cache-Control),但没有成功。有什么建议可以阻止 IE 和 Safari 在使用后退按钮时重新加载页面吗?

这是一个典型的请求和响应 header ,在 IE 和 Safari 中使用后退按钮、重新加载页面或在地址栏中输入 URL 时,它们是相同的。

请求 header

Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding:gzip, deflate
Accept-Language:en-US
Origin:http://165.88.162.245:8000
Referer:http://165.88.162.245:8000/login?next=/
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1

响应 header

Content-Language:en
Content-Type:text/html; charset=utf-8
Date:Tue, 12 Jul 2011 11:35:31 GMT
Server:WSGIServer/0.1 Python/2.6.6
Set-Cookie:sessionid=0675e1246fe03946c54d2052e7adf0c9; Path=/
Vary:Accept-Language, Cookie

最佳答案

具体是哪些版本的 IE?确切的 HTTP 响应 header 是什么?

IE9 及更早版本不会缓存带有“无缓存” header 的页面。对于 IE10 及更高版本,在后退/前进导航的情况下,将有条件地验证缓存的响应或从缓存中提取缓存的响应而不进行验证(请参阅 IEInternals )

IE9修复了这方面的一些问题;请阅读此IEInternals post了解更多信息。

关于internet-explorer - 使用后退按钮: IE and Safari not reading from cache whereas Firefox and Chrome do,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652711/

相关文章:

javascript - "Object doesn' t support..."IE8 在声明普通变量时停止

jquery - ? Internet Explorer 和 Jquery 的 $ ("document").ready(function() 是否存在已知问题?

java - 记录 Ehcache 获取请求

javascript - 脚本工作依赖于 IE 文档模式

html - 这是指定 HTML 固定列宽度(宽度或样式属性)的更好方法

http - 您可以在 Google+ html 源中看到的那些以//- 开头的网址是什么?

objective-c - 在 Objective C 中解析 SSDP Discovery 的最佳方法

python - 使用 python 请求只下载文档的一部分

ruby-on-rails - 何时使用 Redis

http - 如何为云端设置缓存 header 以便 Google Pagespeed 识别它?