From 46edf44904ba54c04e92c3bb926b1b617d051d7c Mon Sep 17 00:00:00 2001 From: zqlit Date: Wed, 7 Oct 2026 23:12:39 +0800 Subject: [PATCH] =?UTF-8?q?fix(pjax):=20=E5=9B=9E=E9=80=80=20cacheBust=20?= =?UTF-8?q?=E2=80=94=E2=80=94=20=E6=81=A2=E5=A4=8D=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E7=A7=92=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实测(usj.cc):cacheBust 让每次 PJAX 多付 ~200-380ms 网络 RTT, 用户可感知卡顿;关掉后重复导航走浏览器缓存(实测 1ms)。 新鲜度兜底:① pjax:success 版本同步(部署换指纹自动整页刷一次) ② CDN HTML 缓存 TTL 待调短(控制台配置)。 --- themes/Ying/assets/js/modules/mypjax.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/themes/Ying/assets/js/modules/mypjax.js b/themes/Ying/assets/js/modules/mypjax.js index 26ad0d29..575e81f7 100644 --- a/themes/Ying/assets/js/modules/mypjax.js +++ b/themes/Ying/assets/js/modules/mypjax.js @@ -8,10 +8,12 @@ var pjax = new Pjax({ // 这里填写页面中改变的部分(和 CSS 选择器用法一样) selectors: ["title", "#pjax-container"], - // ★ cacheBust: PJAX 取新页面时在 URL 上加时间戳参数,绕开浏览器/CDN - // 对 HTML 的长期缓存。没有它,HTML 缓存期内 PJAX 会把「部署前的旧页面」 - // 直接换进来(站点 HTML 的 Cache-Control 长达数天,踩过实锤)。 - cacheBust: true, + // ★ cacheBust 保持 false:重复导航靠浏览器 HTTP 缓存秒出(实测 1ms)。 + // 开 true 会给每次 PJAX 加时间戳绕开缓存 → 每次导航多付 ~200-380ms + // 网络往返(2026-10-07 实测,用户可感知的「点 nav 卡一下」)。 + // 新鲜度由两层兜底:① 部署换样式表指纹后,下方 pjax:success 的版本 + // 同步自动整页刷一次;② CDN 的 HTML 缓存 TTL 应调短(控制台配置)。 + cacheBust: false, elements: "a", // 拦截所有链接 switches: { "#pjax-container": Pjax.switches.default