我并不熟悉允许您管理缓存客户端的所有元数据,因此我尝试使用HTTP标头创建一个简单的示例" expires"
使用以下代码:
<!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>
当我第一次加载页面时(之前清除缓存)。页面保存在缓存中,但当我使用&#34; MY BODY2&#34;更新我的身体时并重新加载页面,页面显示&#34; MY BODY 2&#34;。浏览器应该从缓存中获取页面(&#34; MY BODY&#34;),因为到期时间是2016年7月,不是吗?
感谢您帮助我解决这个问题
答案 0 :(得分:1)
这取决于您重新加载页面的方式。
您基本上有三种选择:
我怀疑你已经完成了选项2并且没有意识到这将检查服务器并假设它将使用缓存,如果仍然有效。它实际检查服务器的原因是,当用户怀疑内容已更改或想要重新下载时(例如,如果页面没有正确呈现),通常会重新加载。
另外需要注意的是,HTML中的元标题不如服务器设置的http响应标头出于各种原因,包括浏览器支持原因。
最后值得打开开发人员工具(例如Chrome中的F12)并检查网络标签以查看正在进行的操作,但在这种情况下确保您没有&#34 ;禁用缓存&#34;在它打开时打勾(默认情况下在Chrome中打勾,因为大多数开发人员在开发时都不想使用缓存)。