2016-05-04 22 views
0

我并不真正熟悉所有允许您管理客户端缓存的元,所以我试图用HTTP头“过期”做一个简单示例HTTP头“过期”不会渲染缓存中的页面

用下面的代码:

<!DOCTYPE html> 
<html> 
    <head> 
      <meta charset="utf-8" /> 
      <meta http-equiv="expires" content="mon, 18 Jul 2016 1:00:00 GMT" /> 
      <title>MY TITLE</title> 
    </head> 

    <body> 
MY BODY 
    </body> 

</html> 

当我加载页面的第一次(缓存之前清零)。页面保存在缓存中,但是当我用“我的BODY2”更新我的身体并重新加载页面时,页面显示“我的身体2”。自从2016年7月到期后,浏览器应该从缓存中取回页面(“我的身体”),不是吗?

谢谢你帮我把一些光对这个问题

回答

1

这取决于你如何重新加载页面。

你基本上已经三个选项:

  1. 浏览到另一个页面,然后返回。这应该使用缓存。
  2. 按F5或重新载入但是。这是一个明确的重新加载,因此会检查服务器是否有新版本 - 即使它被缓存了 - 如果有更新的版本,就下载它。
  3. 强制重新加载(在某些浏览器中按Ctrl + F5)。这表示忽略缓存并从头开始下载(即使缓存版本与服务器将发送给您的缓存版本相同)。

我怀疑你已经做了选项2,并没有意识到这将检查服务器,并假定它会使用缓存,如果仍然有效。它实际上与服务器检查的原因是,当用户怀疑的内容发生了变化,或者想重新下载(例如,如果页面没有正确渲染)重载经常做。

还应该指出的是,在HTML元头是不是由服务器出于各种原因,包括浏览器支持的理由成立HTTP响应头为好。

最后,值得开放开发者工具(例如Chrome中的F12)和检查网络标签以查看发生了什么,但在这种情况下,确保在打开时没有“禁用缓存”由于大多数开发人员在开发时不想使用缓存,因此Chrome中的默认设置)。