首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Web前端开发:什么是浏览器缓存?

缓存是现在系统中必不可少的模块,是高并发高性能架构的一个关键组件。缓存适用于对数据实时性要求不高以及对性能要求高的场景中,可以有效地提升性能,缓解数据压力。对于Web前端开发者来说,主要跟浏览器中的缓存打交道,接下来千锋广州前端小编就给大家讲解一下浏览器缓存机制。

什么是浏览器缓存?

浏览器缓存机制,其实主要就是HTTP协议定义的缓存机制(如:Expires、Cache-control等)。但是也有非HTTP协议定义的缓存机制,如使用HTML Meta标签,Web开发者可以在HTML页面的节点中加入标签,代码如下:

上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身,而广泛应用的还是HTTP头信息来控制缓存。

浏览器对于所请求资源的缓存处理有一套完整的机制,主要包含三个策略:存储策略、过期策略、协商策略。存储策略发生在收到请求响应后,用于决定是否缓存相应资源;过期策略发生在请求前,用于判断缓存是否过期;协商策略发生在请求中,用于判断缓存资源是否更新。

缓存又分为强缓存和弱缓存(又称为协商缓存)。其中强缓存包括Expires和Cache-Control,主要是在过期策略生效时应用的缓存。弱缓存包括Last-Modified和ETag,是在协商策略后应用的缓存。强弱缓存之间的主要区别在于获取资源时是否会发送请求。

浏览器下访问资源的方式主要有7种:

(新标签)地址栏回车

链接跳转

前进、后退

从收藏栏打开链接

(window.open)新开窗口

刷新(Command + R / F5)

强制刷新(Command + Shift + R / Ctrl + F5)

使用这7种方式访问资源时,应用缓存的策略会有一些不同。需要注意的是,除此之外,还有一种特殊情况。即在当前地址栏,不改变内容,直接回车,等同于刷新当前页。但是在当前页点击跳转到自身,和链接跳转一致,并不会等同于刷新。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200605A0KMTY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券