我有一个我预览的幻灯片(自定义html / js),并确保每次开始幻灯片预览时都从数据库中获取最新版本,我在html文件中有这些缓存语句
<!DOCTYPE html>
<!-- preview:[true]-->
<HEAD>
<title>screen</title>
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
但有时我仍然需要清空浏览器缓存才能获得最新的更新。
还有什么我可以放在我的html文件的头部,以防止浏览器为我缓存这个? Chrome是我主要使用的,我有时会遇到这种效果,但我想为所有浏览器提供通用答案。
---------------- UPDATE ------------------- 所以我包含了一些缓存控制头(感谢arkascha),但仍然有点怀疑=)
以下是我在回复中添加的内容(php / sym2)
$response->expire();
$now = new \DateTime("now");
$response->setCache(array(
'last_modified' => $now,
'max_age' => 0,
's_maxage' => 0,
'private' => true,
));
这给了我以下的响应标题
Cache-Control:max-age=0, private, s-maxage=0
Connection:Keep-Alive
Content-Type:text/html; charset=UTF-8
Date:Wed, 31 May 2017 08:41:19 GMT
Keep-Alive:timeout=5, max=100
Last-Modified:Wed, 31 May 2017 08:41:20 GMT
Server:Apache/2.2.25 (Unix) mod_ssl/2.2.25 OpenSSL/0.9.8zh DAV/2 PHP/5.5.3
Transfer-Encoding:chunked
X-Powered-By:PHP/5.5.3
...和请求标题显示为:
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:sv-SE,sv;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:max-age=0
Connection:keep-alive
Cookie:main=1111111; PHPSESSID=70c2e1a6f81a9d3dad59ed908f25b585
Host:localhost
If-Modified-Since:Wed, 31 May 2017 08:40:18 GMT
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
但是在我的网络选项卡(chrome)上,我仍然会在“大小”列中看到很多“来自内存缓存”和“来自磁盘缓存”的不同资源(顺便说一句,这两者之间有什么区别?)
http标头是否仅影响当前页面而不影响相关资源,例如.json文件?