ie如何清除浏览器缓存 ie清除浏览器缓存
作者:kevinylzhao,腾讯音乐前端开发工程师
浏览器缓存策略对于前端开发同学来说不陌生 , 大家都有一定的了解,但如果没有系统的归纳总结,可能三言两语很难说明白,甚至说错,尤其在面试过程中感触颇深 , 很多候选人对这类基础知识竟然都是一知半解,说出几个概念就没了,所以重新归纳总结下,温故而知新 。
Web 缓存介绍
- Web 缓存是指一个 Web 资源(如 html 页面,图片,js,数据等)存在于 Web 服务器和客户端(浏览器)之间的副本 。
- 缓存会根据进来的请求保存输出内容的副本;当下一个请求来到的时候,如果是相同的 URL,缓存会根据缓存机制决定是直接使用副本响应访问请求,还是向源服务器再次发送请求 。
- 减少网络延迟,加快页面打开速度
- 减少网络带宽消耗
- 降低服务器压力
- …

根据什么规则缓存
- 新鲜度(过期机制):也就是缓存副本有效期 。一个缓存副本必须满足以下条件 , 浏览器会认为它是有效的 , 足够新的:
- 含有完整的过期时间控制头信息(HTTP 协议报头) , 并且仍在有效期内;
- 浏览器已经使用过这个缓存副本 , 并且在一个会话中已经检查过新鲜度;
- 校验值(验证机制):服务器返回资源的时候有时在控制头信息带上这个资源的实体标签 Etag(Entity Tag),它可以用来作为浏览器再次请求过程的校验标识 。如果发现校验标识不匹配,说明资源已经被修改或过期,浏览器需求重新获取资源内容 。
本地缓存阶段浏览器发送请求前,会先去缓存里查看是否命中强缓存,如果命中,则直接从缓存中读取资源 , 不会发送请求到服务器 。否则 , 进入下一步 。
协商缓存阶段当强缓存没有命中时 , 浏览器一定会向服务器发起请求 。服务器会根据 Request Header 中的一些字段来判断是否命中协商缓存 。如果命中,服务器会返回 304 响应,但是不会携带任何响应实体,只是告诉浏览器可以直接从浏览器缓存中获取这个资源 。如果本地缓存和协商缓存都没有命中,则从直接从服务器加载资源 。
启用&关闭缓存按照本地缓存阶段和协商缓存阶段分类:

- 使用 HTML Meta 标签Web 开发者可以在 HTML 页面的节点中加入标签,如下:
a. 仅有 IE 才能识别这段 meta 标签含义 , 其它主流浏览器仅识别“Cache-Control: no-store”的 meta 标签 。
b. 在 IE 中识别到该 meta 标签含义,并不一定会在请求字段加上 Pragma,但的确会让当前页面每次都发新请求(仅限页面,页面上的资源则不受影响) 。
- 使用缓存有关的 HTTP 消息报头 这里需要了解 HTTP 的基础知识 。一个 URI 的完整 HTTP 协议交互过程是由 HTTP 请求和 HTTP 响应组成的 。有关 HTTP 详细内容可参考《Hypertext Transfer Protocol — HTTP/1.1》、《HTTP 权威指南》等 。
推荐阅读
- 如何洗衣服上的墨水 怎么洗衣服的墨水
- 绥化律师咨询免费 绥化委托律师起诉如何收费
- 小学生叛逆不写作业怎么办 叛逆期孩子不写作业如何开导
- 微信里如何将聊天记录发给别人 微信如何把聊天记录发给别人
- 微信如何发聊天记录长图 微信如何发聊天记录
- 苹果手机如何清理内存垃圾,手把手教你哦 苹果手机如何清理内存
- 纸巾堵住了马桶如何自己快速疏通
- 商住两用房的房产税如要如何征收
- 如何看软尺的刻度 如何看软尺的刻度空白
- 双休日加班工资如何算