事件 - htmx:historyCacheMiss
htmx:historyCacheMiss 是 HTMX 在处理浏览器历史记录恢复(如返回、前进)时触发的事件,表示找不到该页面对应的缓存内容。
换句话说:你使用了 hx-push-url 或浏览器的后退/前进按钮返回到某个页面状态,但 HTMX 没有保存当时的 DOM 缓存,于是触发了这个事件。
事件参数
- detail.xhr - XMLHttpRequest将检索远程内容以进行恢复
- detail.path - 正在恢复的页面的路径和查询
常见原因
原因 | 描述 |
---|---|
页面刷新或跳转过 | 浏览器清空 HTMX 内部缓存 |
使用了 location.reload() 或直接访问页面 | 会失效 |
页面太久未访问 | HTMX 的内存中已丢失之前缓存 |
不支持缓存的大型响应 | HTMX 可能不会保存 |
示例代码
<script>
document.body.addEventListener("htmx:historyCacheMiss", function(evt) {
console.warn("历史记录缓存丢失,将重新从服务器加载页面");
// 你可以选择在这里显示一个 loading,或者记录日志
});
</script>