1. mac 笔记本 chrome浏览器缓存
-
shift + command + g 然后
/用户/zhy/资源库/Caches/Google/Chrome/Default/Cache
-
清除chrome缓存
-
shift + command + del
- ctrl + F5 强刷当前页
2. 客户端缓存
内存缓存:窗口关闭就消失了,如果你开一个新的窗口,然后先打开控制台,再重新输入刚才的网址就会发现里面都是从硬盘中读取的了
硬盘缓存:不清就存在,也就是mac位置中的caches文件
问题: 为什么会存在两个校验的字段 ?
解答
- Last-Modified只能精确到妙级,如果文件在1秒内修改多次,Last-Modified就不能精确的标记文件被修改的时间了
- 如果某些文件会被定期生成,但是内容没有改变,但是Last-Modified却改变了,导致没有办法使用缓存。
- Etag是服务器自动生成的或者由开发者生成的对应资源在服务器上的唯一标识符,能够更加准确的控制缓存。
- Last-Modified和Etag可以一起使用,浏览器会优先校验Etag,一致的情况下才会去校验Last-Modified。
- 集群的情况?下使用Last-Modified更好。
3.哪些请求不能被缓存?
- HTTP头信息中包含这些
- cache-Control :no-store
- cache-Control : max-age=0
- 经常说的no-cache不算,他可以缓存,只不过是要校验是否过期
- POST 请求无法缓存
- HTTP响应头不包含Etag / Last-Modified, 并且请求头中也不包含Cache-Control/Expires。
注意 :
- Etag / Last-Modified 是浏览器给服务器的用于判断是否过期的
- Cache-Control/Expires 是服务器给浏览器判断是否要缓存资源副本的
4.浏览器默认缓存时,开发环境下,服务器资源更新了,但是页面看不到效果,如何解决?
- Ctrl + F5
- Command + shift + N 进入无痕模式
勾上