探讨下为什么设置了Cache |
您所在的位置:网站首页 › cachecache旗舰店怎么不更新了 › 探讨下为什么设置了Cache |
前言
今天做项目的时候遇到一个问题,就是在ie11中 新增一条新的消息后页面刷新后,并没有看到新增的消息,于是打开控制台发现 304 Not Modified 加时间戳没用 于是赶紧联系后台大佬能不能把cache-control改成Cache-Control:no-cache试试 然而并没什么卵用,然后自己研究。 浏览器缓存机制 当前缓存是否过期?服务器中的文件是否有改动? 如何判断缓存的过期以及文件的变动?主要的方式有两种,这两种都是设定请求头中的某一个字段来实现的: 1、Expires; 2、Cache-Control。由于Cache-Control设置后优先级比前者高,这次作者就先说下通过Cache-Control来控制缓存。 常见取值: no-cache 如果request headers中,Cache-Control为no-cache。表示不管服务端有没有设置Cache-Control,都必须从重新去获取请求。 max-age=xxx:缓存的内容将在 xxx 秒后失效 max-age=0 max-age=0表示不管response怎么设置,在重新获取资源之前,先检验ETag/Last-Modified 不管是max-age=0还是no-cache,都会返回304(资源无修改的情况下),no-store才是真正的不进行缓存。 private: 客户端可以缓存(默认) public: 客户端和代理服务器都可缓存(前端的同学,可以认为public和private是一样的) no-store: 所有内容都不会缓存,强制缓存,对比缓存都不会触发(对于前端开发来说,缓存越多越好,so...基本上和它说886 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |