使用缓存刷新页面

RAN*_*GER 2 javascript caching refresh

我正在尝试刷新页面,但是想要使用缓存并且无法弄清楚如何执行此操作.有两种情况:

  • 如果我点击URL栏并点击回车(或从其他地方访问该页面),它会从缓存中重新加载页面/图像.大!

  • 如果我点击刷新按钮或使用Javascript刷新页面,它会再次抓取所有图像并永远占用.不是很好!

我试过:top.location.reload(false);top.location.reload(true);(我从一个iFrame发送此),并没有使用缓存.我正在避免使用location它,因此它不会在浏览器历史记录中结束两次.

问题:如何使用缓存图像重新加载页面?是否有不同的javascript函数或这是mod_expires问题?

在此先感谢您的帮助!

编辑:(来自chrome的信息:开发人员工具)

  • 当导航到页面时,我获得所有图像的"从缓存"
  • 刷新页面时,我会为所有图像获得"304 - Not Modified"(并且需要花时间下载每个图像)

编辑2 :(来自图像的标题,safari:开发人员工具)

Javascript:top.location.reload(false); (没有缓存!)

Status Code:304 Not Modified

Request Headers
Cache-Control:max-age=0
If-Modified-Since:Tue, 28 Jun 2011 07:13:17 GMT
If-None-Match:"104684ae-a7d-66e41d40"
Referer:http://getdirectus.com/dev/media.php
User-Agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1

Response Headers
Cache-Control:max-age=157680000
Connection:Keep-Alive
Date:Tue, 28 Jun 2011 16:56:50 GMT
Etag:"104684ae-a7d-66e41d40"
Expires:Sun, 26 Jun 2016 16:56:50 GMT
Keep-Alive:timeout=5, max=94
Server:Apache/2.0.54
Run Code Online (Sandbox Code Playgroud)

导航到页面:(使用缓存)

Status Code:200 OK

Response Headers**
Accept-Ranges:bytes
Cache-Control:max-age=157680000
Connection:Keep-Alive
Content-Length:2685
Content-Type:image/jpeg
Date:Tue, 28 Jun 2011 16:54:20 GMT
Etag:"104684ae-a7d-66e41d40"
Expires:Sun, 26 Jun 2016 16:54:20 GMT
Keep-Alive:timeout=5, max=99
Last-Modified:Tue, 28 Jun 2011 07:13:17 GMT
Server:Apache/2.0.54
Run Code Online (Sandbox Code Playgroud)

Spl*_*iFF 5

文档window.location.reload( false );表示它将从缓存中加载.如果没有发生这种情况,那么您可能会看到浏览器错误.看看您是否可以在另一个浏览器中复制该问题.

编辑(对于您的编辑):您看到了这种行为,因为您将来没有设置过期标头.您需要在Apache中添加Expires标头.