接下来就是第二次访问速度了,第二次访问速度实际上就大多应该用到缓存了,http设计时就已经考虑了缓存,控制Http缓存的方式有三种:
新鲜度,验证和实效。新鲜度,也叫做ttl生存时间,我记得这个我们学习网络的时候也用到过,这个是最简单的方式,使用报头,缓存代理会被告知在保持状态和重新获取内容之间需要持续多久。
验证,这是为缓存代理提供无需完整资源就能确定旧缓存是否可用的方法。浏览器可以发出一个包含if-modify-sinse的请求。如果服务器上的文件没有发生改变,服务器就会发送304 not modified的响应,这样浏览器就会使用缓存中的文件不会重新获取。
实效,某些操作执行后浏览器会让缓存实效,最常见的就是创建指向相同url的非get请求。
以上说了这么多,但我们平时不会改写报头也不做其他的事情。而实际上,大多数浏览器有一个最大缓存大小,当缓存达到这个大小时,就会从缓存中删除最近最少使用的项目,因此,长时间一直没有被使用的缓存项将被清除,我们应该保持项目更频繁的使用。
因此,清除缓存是基于用户行为的,没有可靠的预测。如果不考虑缓存报头,浏览器可能会在缓存中存储你不想保存的内容,而没有保存你想要的内容。
因此,开发人员需要自己对缓存应用编写相关的js代码。
时间: 2024-10-12 12:39:28