Haz*_*ass 5 html javascript node.js
我有一个使用nodejs缓存的静态内容,据我所知有两种方法:
这可以使用 Node.js 来完成:
app.use(express.static(path.join(__dirname, 'public'), { maxAge: oneDay }));
将包含静态内容的x.appcahe文件添加到缓存,然后在 html 标签中添加 Manifest 属性:
<html manifest="x.appcache">
所以我的问题是这两种方式有什么区别?
如果您搜索“缓存控制与 html 清单”,您会发现大量详细信息,这些详细信息超出了我在单个答案中可以编写的内容。然而,另一个标题为HTML 5 Cache Manifest Vs 的问题。Etags,Expires或cache-control标头有很好的总结和引用
HTML5 缓存清单与传统 HTTP 标头之间的主要区别:
- 对于缓存清单,您需要浏览器的支持
- 当然,对于 HTTP 标头,您还需要浏览器的支持,但它更通用
- 您可以通过缓存清单更好地控制缓存
- 您的网站或 Web 应用程序可以在没有任何连接的情况下正常离线工作
- 您可以拥有每个资源的两个版本 - 用于离线和在线使用
最后一点非常方便,可以让您轻松交换网站中需要连接的部分,例如。包含可选注释的占位符,表明用户在没有连接或任何您想要的情况下无法获得完整功能。
还有一些兼容性问题,因为某些浏览器并不总是按照标准运行......所以这也值得研究和确定哪个(缓存控制与清单)最适合您的情况。