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