事件 - 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 上报给后端分析
自动跳转 可以导航到安全页面(如首页、错误页)
友好提示 提示“页面已过期,请刷新”等
降级方案 可显示“请重新加载页面”的提示链接