基于 html tag/other 否 ASP 的选择性浏览器缓存(即甜甜圈)?

Selective browser caching (ie donut) based on html tag/other no ASP?

据我所知,ASP 中的 "donut hole caching" 指的是 server-side 缓存。服务器 re-uses,逐字记录,跨请求的甜甜圈的 "bread" 部分和每个请求的 re-generates "hole" 部分。

客户端(浏览器)没有这样的机制来区分"bread"和"hole"。它根据服务器发送的缓存 headers 在请求级别进行缓存。因此,如果 https://example.com/page-with-form 的缓存 time-to-live 为十分钟,但表单的随机 ID 仅在一分钟内有效,则用户很可能会遇到错误,即使他们在九分钟刷新页面并且59 秒。

请记住,如果用户离开一个小时 return 并在表单上点击 "submit",也可能会遇到错误。

一种方法是通过在服务器响应上设置 no-cache headers 来禁用 client-side 缓存。

另一种方法是 允许 缓存 HTML,但偶尔使用 JS re-populate 随机 ID(我不了解您应用的安全结构,所以我不知道这是否违背了随机 ID 的目的)。