首页 > 其他分享 >如何优化浏览器缓存

如何优化浏览器缓存

时间:2024-09-04 14:52:18浏览次数:6  
标签:缓存 浏览器 URL WordPress 优化 资源 加载

每当用户访问您的网站,他他们的浏览器需要从服务器上下载页面显示所需的资源(图片、CSS、JavaScript 和字体等),这些资源的下载会占用带宽,并需要一定的传输时间。但通过正确配置,您可以告知用户的浏览器保存部分文件,这样下一次访问时可以直接从缓存中读取,从而加快页面加载速度。

什么是浏览器缓存?

当浏览器从服务器上下载资源时,会将其保存在本地计算机上。在此过程中,您的网站还可以通过HTTP标头向浏览器发送关于如何、何时以及在何处重新使用这些资源的附加说明。

当浏览器再次从网站请求该资源时,它可以检查本地是否已有保存的副本,并使用该资源加载页面。浏览器管理这个资源池,并跟踪缓存中的每个对象及其URL。

您可以通过重新加载页面来测试浏览器缓存。您会注意到这比初次访问时(或进行“硬刷新”时)快得多,因为浏览器已经本地保存了加载页面所需的一切资源,随时可用。

缓存规则的最佳实践

最好的做法是尽可能多、尽可能频繁、尽可能长时间地缓存。这样才能保证当用户浏览您的网站,或在一段时间内重复访问时,无需反复(重新)下载相同的资源,访问体验尽可能快。

因此一般情况下,我们都会希望充分利用浏览器缓存,并尽可能长时间地存储资源。

但永久缓存所有内容也可能会带来一些麻烦,因而在设置资源的缓存规则时,您需要考虑如果资源发生变化会发生的情况。

例如;假设您修改了 CSS 以更改您的网站布局。您的某些用户可能在他们的浏览器缓存中存储了旧版本的 CSS。他们会看到旧的(或可能甚至是损坏的)布局,因为他们加载了一个“过期”的文件。在这种情况下,您就会希望网站不加载缓存版本;您甚至可能希望使这些缓存资源无效。

使用 WordPress 的资源版本

WordPress 会根据您的主题版本自动将“版本参数”附加到大多数 CSS 和 JavaScript 资源。例如,file.js?ver=1.0.0。

当您的主题更新时,版本号(以及资源的 URL)会发生变化。这是一个新文件,因此不存在提供过时文件的风险。

可以通过设置适当的到期时间,或使用新/不同的资源文件名来配置缓存控制规则,以防止此类冲突。由于浏览器缓存与资源的 URL 相关联,因此更改资源的 URL 也是一种万解决方法。

使用 WordPress 缓存图像

WordPress 网站可以安全地永久缓存图像,而不必担心资源过时。这是因为 WordPress 本身不允许编辑者更改文件名 - 因此对图像的任何更改等于直接替换,因此URL也会变更。

管理浏览器缓存

配置浏览器缓存规则时,对于不类型的资源都需要考虑以下3个问题:

是否应允许浏览器缓存它?

应该允许缓存多长时间?

什么情况可能会使该缓存无效?

对大部分的网站来说,一些静态的内容,比如图片或者CSS/JavaScript,应尽可能积极且长时间地缓存。您可以通过设置max-age或设置尽可能遥远的到期日期来实现。

如果您的网站资源上包含版本参数,那么您可以安全地永久缓存它们- 因为一旦进行更改,系统就会提供不同的 URL 来加载。

对于那些不自动对文件进行版本控制的网站,对于缓存规则和过期时间的设置,应该在高效加载资源的优势以及它长时间存在可能带来的风险之间做好平衡。

除了更改URL,您还可以使用更高级的 HTTP 头配置(如“ETags”)来指示浏览器检查缓存文件的内容是否与请求文件的内容匹配。但这些类型的设置很少见,且配置和维护非常复杂。在大多数情况下,对资源进行版本控制是最简单且有效的办法。

检查浏览器缓存设置

您可以使用Google的PageSpeed Insights工具检查浏览器缓存规则是否设置完善,它还会识别未被缓存的资源以及缓存时间较短的资源,必要时可以延长其缓存时间。

在下面的示例中,我们可以看到一系列仅缓存 30 天的图像和字体。如果看到类似结果,您可以考虑延长相关缓存设置的到期日期。

如何优化浏览器缓存_浏览器缓存

如何实现和配置浏览器缓存

手动配置浏览器缓存可能非常复杂,例如,您可能需要手动修改 .htaccess 文件,这需要有一定的专业知识。

不过您使用的是WordPress,就省事很多,有许多出色的 WordPress 插件可以帮助您设置,大多数好的主机公司也会提供设置合理的默认值,比如Hostease的虚拟主机,在默认设置的基础上,您还可以联系技术支持为您做调整,所以说,选择一个可靠的主机商,对于网站建设来说也是非常重要的。除此之外,您还可以配合使用一个好的 CDN(如 Cloudflare)来进一步优化缓存设置。

标签:缓存,浏览器,URL,WordPress,优化,资源,加载
From: https://blog.51cto.com/u_16554210/11917980

相关文章

  • Chrome 浏览器插件获取网页 window 对象(方案二)
    前言最近有个需求,是在浏览器插件中获取window对象下的某个数据,当时觉得很简单,和document一样,直接通过嵌入content_scripts直接获取,然后使用sendMessage发送数据到插件就行了,结果发现不是这样滴...在这里不推荐使用runtime.executeScript进行注入,很可能会报错:Refus......
  • 如何利用 API 中的用户行为数据进行商品搜索关键词优化?
    以下是一些根据API返回值优化商品搜索关键词的步骤:分析返回数据中的搜索流量分布:查看API提供的关于不同关键词搜索频次的数据。对于搜索频次高且与商品相关的关键词,重点考虑将其纳入或优化到商品关键词中。例如,如果API显示“智能手表”这个关键词在一周内有1000次......
  • macOS 将google-chrome命令直接映射到谷歌浏览器的可执行文件上。可以像在Ubuntu上一
     创建符号链接找到谷歌浏览器的可执行文件:在macOS中,应用程序通常位于/Applications目录下,并且它们的可执行文件隐藏在.app包中。谷歌浏览器的可执行文件路径是:bash复制代码/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome创建符号链接:你可以在终端......
  • Chrome 浏览器插件获取网页 window 对象(方案一)
    前言最近有个需求,是在浏览器插件中获取window对象下的某个数据,当时觉得很简单,和document一样,直接通过嵌入content_scripts直接获取,然后使用sendMessage发送数据到插件就行了,结果发现不是这样滴...这玩意还是个挺麻烦的点,下面给出三种解决方案在这里不推荐使用runtime......
  • 性能优化:自动化处理系统设计
    性能优化:自动化处理系统设计前言需求分析系统设计1.调度中心2.任务执行器3.错误处理机制4.通知系统5.报表生成器6.日志记录器技术实现结语前言  在当今这个信息爆炸、技术日新月异的时代,企业面临着前所未有的挑战和机遇。随着业务量的不断增长,传统的手动处......
  • Python程序:递归实现阶乘函数的优化与代码解读
    一、引言阶乘(Factorial)在数学和计算机科学中是一个常见的概念,它表示一个正整数的所有正整数的乘积。阶乘的定义如下:n!=n×(n−1)×(n−2)×…×1其中,0!定义为1。本文将以递归方式实现阶乘函数,并对代码进行优化与解释。二、原始代码首先来看一个简单的递归实现阶乘的P......
  • 洛谷题单指南-常见优化技巧-P3143 [USACO16OPEN] Diamond Collector S
    原题链接:https://www.luogu.com.cn/problem/P3143题意解读:找到两个不相交的最长连续序列,使得序列最大值和最小值差不超过k,求两个最长的序列长度和。解题思路:先将所有数从小到大排序,记为a[]要找到两个不相交的最长连续序列,可以采用下面技巧:设b[i]表示i之前“差值在k之内的连续......
  • mysql优化
    MySQL优化方向:在设计上:字段类型,存储引擎,范式在功能上:索引,缓存,分库分表在架构上:集群,主从复制,负载均衡,读写分离1.SQL优化1.1插入优化1.大量数据采用批量插入形式2.事务设置手动提交,MySQL默认是自动提交,意味着每写一个SQL事务就自动提交,可能会频繁的涉及事务开始和提交,所......
  • 洛谷题单指南-常见优化技巧-P4653 [CEOI2017] Sure Bet
    原题链接:https://www.luogu.com.cn/problem/P4653题意解读:选中的灯泡中,某一类较少的总权值减去灯泡数量所得到的收益最大值。解题思路:注意,此题关键是:要使得较少的收益最大化1、要最大化,意味着每次应该选择尽可能大权值的灯泡2、要使A、B类中较少的收益最大化,意味着每次应该优......
  • SSA(麻雀优化算法)+CNN+LSTM时间序列预测算法(python代码)
    1.SSA(SparrowSearchAlgorithm)简介:SSA是一种新兴的群体智能优化算法,模拟麻雀觅食行为。麻雀群体中的“发现者”负责寻找食物,并将信息传递给“追随者”,后者根据这一信息进行觅食。SSA通过这种合作机制寻找最优解。SSA在优化问题中可以视为一种元启发式算法,擅长在复杂搜索......