截图快捷键是什么-最新显卡驱动

ie缓存文件夹
2023年3月31日发(作者:sqldecimal)

各种浏览器的缓存机制及相关问题的解决办法

⼀、

http1.1⽆效现都是http1.0的天下了

以上三种基本可以忽略,因为⼤多情况下都是⽆效的。

⽆法被浏览器缓存的请求:

信息头中包含Cache-Control:no-cache,pragma:no-cache(HTTP1.0),或Cache-Control:max-age=0等告诉浏览器不⽤缓存

的请求(⽆效)

2.需要根据Cookie,认证信息等决定输⼊内容的动态请求是不能被缓存的

3.经过HTTPS安全加密的请求(有⼈也经过测试发现,ie其实在头部加⼊Cache-Control:max-age信息,firefox在头部加⼊Cache-

Control:Public之后,能够对HTTPS的资源进⾏缓存)

请求⽆法被缓存

响应头中不包含Last-Modified/Etag,也不包含Cache-Control/Expires的请求⽆法被缓存

⼆、下⾯的是浏览器读取⽂件的整个流程,很全很强⼤

三、如果不想要缓存,唯⼀的办法就是在url后⾯添加参数,⽐如/?v=20150316,但是在ios上开发webapp时会⽆

效,这个待记你⼀步研究

四、浏览器缓存机制的详细说明

另外,Cache-Control与Last-Modified是浏览器内核的机制,⼀般都是标准的实现,不能更改或设置。以QQ浏览器的X5为例,Cache-

Control与Last-Modified缓存不能禁⽤。缓存容量是12MB,不分HOST,过期的缓存会最先被清除。如果都没过期,应该优先清最早的缓

存或最快到期的或⽂件⼤⼩最⼤的;过期缓存也有可能还是有效的,清除缓存会导致资源⽂件的重新拉取。

还有,浏览器,如X5,在使⽤缓存⽂件时,是没有对缓存⽂件内容进⾏校验的,这样缓存⽂件内容被修改的可能。

分析发现,浏览器的缓存机制还不是⾮常完美的缓存机制。完美的缓存机制应该是这样的:

1.缓存⽂件没更新,尽可能使⽤缓存,不⽤和服务器交互;

2.缓存⽂件有更新时,第⼀时间能使⽤到新的⽂件;

3.缓存的⽂件要保持完整性,不使⽤被修改过的缓存⽂件;

4.缓存的容量⼤⼩要能设置或控制,缓存⽂件不能因为存储空间限制或过期被清除。

以X5为例,第1、2条不能同时满⾜,第3、4条都不能满⾜。

在实际应⽤中,为了解决Cache-Control缓存时长不好设置的问题,以及为了”消灭304“,Web前端采⽤的⽅式是:

1.在要缓存的资源⽂件名中加上版本号或⽂件MD5值字串,如,,同时设置Cache-Control:max-

age=31536000,也就是⼀年。在⼀年时间内,资源⽂件如果本地有缓存,就会使⽤缓存;也就不会有304的回包。

2.如果资源⽂件有修改,则更新⽂件内容,同时修改资源⽂件名,如,html页⾯也会引⽤新的资源⽂件名。

通过这种⽅式,实现了:缓存⽂件没有更新,则使⽤缓存;缓存⽂件有更新,则第⼀时间使⽤最新⽂件的⽬的。即上⾯说的第1、2条。第

3、4条由于浏览器内部机制,⽬前还⽆法满⾜。

DomStorage存储机制

DomStorage是通过存储字符串的Key/Value对来提供的,并提供5MB(不同浏览器可能不同,分HOST)的存储空间(Cookies才

4KB)。另外DomStorage存储的数据在本地,不像Cookies,每次请求⼀次页⾯,Cookies都会发送给服务器。

DOMStorage分为sessionStorage和localStorage。localStorage对象和sessionStorage对象使⽤⽅法基本相同,它们的区别在于作⽤的

范围不同。sessionStorage⽤来存储与页⾯相关的数据,它在页⾯关闭后⽆法使⽤。⽽localStorage则持久存在,在页⾯关闭后也可以使

⽤。

更多推荐

ie缓存文件夹