事件 - htmx:historyCacheMissError
htmx:historyCacheMissError 是 HTMX 在用户点击浏览器的“前进”或“后退”按钮时, 尝试从历史缓存恢复页面状态失败,且无法重新加载内容时触发的错误事件。
这是非常罕见但关键的场景,常用于:
-
检测严重缓存丢失并提示用户
-
自动重定向到首页或错误页
-
打印日志用于调试
事件参数
- detail.xhr - XMLHttpRequest
- detail.path - 正在恢复的页面的路径和查询
触发条件
-
页面使用了 hx-push-url="true" 或启用了历史缓存;
-
用户通过浏览器导航返回或前进;
-
HTMX 尝试从缓存恢复页面失败;
-
且尝试重新加载服务器数据也失败(如网络异常、404、500 等);
-
此时就会触发 htmx:historyCacheMissError。
示例:发生错误时跳转到首页并提示
<script>
document.body.addEventListener("htmx:historyCacheMissError", function (event) {
const path = event.detail.path;
console.error("历史缓存加载失败,路径为:", path);
alert("页面缓存恢复失败,将跳转到首页");
window.location.href = "/";
});
</script>
实战建议
操作 | 建议 |
---|---|
错误记录 | 可将 event.detail.path 上报给后端分析 |
自动跳转 | 可以导航到安全页面(如首页、错误页) |
友好提示 | 提示“页面已过期,请刷新”等 |
降级方案 | 可显示“请重新加载页面”的提示链接 |