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