探讨下为什么设置了Cache

您所在的位置:网站首页 cachecache旗舰店怎么不更新了 探讨下为什么设置了Cache

探讨下为什么设置了Cache

2024-02-11 15:51| 来源: 网络整理| 查看: 265

前言

今天做项目的时候遇到一个问题,就是在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