只在插件设置页用到的图表库,被后台每一个页面都加载了一遍,光这一项就 480KB。打开文章列表要等 1.2 秒,网络面板里这个文件一次都没被调用。日志里能对上时间点,这种反而好排。

入队代码写在后台脚本钩子里却没判断当前页面,任何后台请求都会带上它。这个钩子在所有后台页面都会执行,页面标识要自己比对。这一点先确认清楚,后面就不用反复试。

add_action("admin_enqueue_scripts", function ($hook) {
    if ($hook !== "toplevel_page_abc-sync") { return; }
    wp_enqueue_script("abc-chart", plugins_url("chart.js", __FILE__), [], "1.0", true);
});

这次卡住的地方就在「插件脚本全局加载」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。

处理上按这个顺序:在钩子里接住页面标识参数 只等于插件页面时才入队;标识不要写死 用菜单注册时返回的值存下来比对;临时打印一次入队日志 逐个后台页面确认只出现一次。

结果对不对很好判断,文章列表页的网络请求里不再有 chart.js,插件设置页仍然正常出图。

作者 9823189