AI 生成摘要
博客访客统计异常源于启用 PJAX 后默认追加 URL 时间戳参数,导致访客数被重复计算。根本原因是 PJAX 的`cacheBust` 选项默认为 true。解决方法是在初始化 PJAX 实例时将`cacheBust` 设置为 false。这样既能保留无刷新切页功能,又能避免时间戳干扰数据,确保统计准确。
问题描述
今日发现博客访客统计有问题,原来是因为启用了 PJAX 后,默认会在 URL 后面追加一个时间戳参数 ?t=...,导致统计系统把同一个页面当成了多个不同的页面。
根因
根因其实很明确:PJAX 的 cacheBust 默认值是 true。
它的作用是:
- 每次请求都在 URL 后面追加时间戳
- 强制绕过缓存
- 保证拿到最新内容
这在某些场景里有意义,但在博客这种站点里,通常没必要。
解决办法
最直接的办法,就是在创建 PJAX 实例时关闭这个行为:
1 | |
这样之后:
- PJAX 仍然保留无刷新切页
- URL 不再自动追加
?t=... - 访客统计也不会被这些时间戳参数干扰