HTML 缓存中单个 URL 的多个不同缓存?


内容缓存是实现快速流畅用户体验的有效方法。网页中的每个 URL 都可以链接到缓存清单的单个部分。但是,某些大型且很少使用的文件会降低缓存的整体速度。由于它们不需要更改,但每次缓存更新时仍会重新下载,因此最好将此类文件保存在具有相同 URL 的不同缓存中。这将提高其速度和性能。

那么,如何分割 HTML 缓存?在此之前,让我们了解什么是 HTML 缓存。

什么是 HTML 缓存?

缓存是一种存储请求的给定响应,然后重用存储的响应以满足后续类似请求的方法。它存在于从原始服务器到 Web 浏览器的整个过程中。

重用存储的响应可以提高服务器响应速度。它还可以提高硬件的性能。

HTML 缓存是缓存网页的 HTML 内容。

示例

<!DOCTYPE HTML> <html manifest = “example.appcache” > <body> <h1> This is an example </h1> </body> </html>

缓存类型

HTTP 缓存存储请求和响应,以便在后续请求中重用它们。它可以分为两种类型:**共享缓存**和**私有缓存**。

共享缓存

它是一个在原始服务器和多个客户端之间存储数据的缓存。它存储响应并将其与所有客户端重用。

因此,它不包含个性化内容。

私有缓存

此缓存仅存储客户端的内容。它为单个客户端用户存储响应。因此,开发人员可以将个性化内容存储在此缓存中。

缓存控制

**缓存控制** HTTP 标头指定用于管理来自请求和响应的缓存数据的指令。

它具有各种指令,例如 no-transform、max-age、no-store、no-cache、private 和 public。让我们在下面讨论一些。

max-age

它是缓存控制的响应指令之一,指示缓存在生成响应后 X 秒内保持新鲜。

在此,新鲜状态告诉浏览器响应仍然有效。因此,它可以被重用。而陈旧状态表示响应无效,即已过期。

语法

Cache-Control: max-age = X

示例

Cache-Control: max-age = 856098

s-maxage

它也是一个响应指令,指示缓存是新鲜的还是陈旧的。但是,它仅适用于共享缓存。

示例

Cache-Control: s-maxage = 766498

时间戳

时间戳是文件或日志中记录的时间,指示其内容添加、修改或传输的时间。其参考日期为 1970 年 1 月 1 日 UTC。

示例

此代码块以毫秒为单位提供时间戳。

Date.now = function demo() { return new Date().getTime(); }

在 Javascript 中,您可以使用 Date.now()

为了以秒为单位获取时间戳,请将其除以 1000。

示例

function demo() { return Math.floor (Date.now() / 1000); }

**注意** - Math.floor() 函数用于获取小于或等于给定数字的最大整数。

示例

console.log( Math.floor(5.95));

解决此问题的最佳方法是对清单缓存部分中的所有文件使用 max-age,并为缓存中的每个文件添加时间戳。

如果其中任何文件被修改,清单将更新时间戳。因此,只有在缓存处理期间具有更新时间戳的文件才会被下载。

示例

首先,让我们创建一个缓存清单文件

<!DOCTYPE HTML> <html manifest = “example.appcache” > <body> <h1> This is an example </h1> </body Cache-Control: max-age =567890> </html>

CACHE 清单

缓存 -

/example.html
/demo.js

结论

正确处理缓存会对您的网站产生重大影响。缓存提供了高速和增强的用户界面性能,即用户享受更快的体验。它还使网站服务器能够使用相同的硬件管理更多的网络流量。最重要的是,它具有成本效益,甚至可以重复提供相同的内容。简而言之,正确的缓存为开发人员提供了各种好处。

更新于: 2022 年 10 月 13 日

275 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告