最新回复 (
1 )
本文共计2631个字,预计阅读时长10.5分钟。
{% tip info %}
本文介绍的是本站当前已经启用的加载方案:在 Xiuno BBS 服务端渲染基础上,使用 Barba PJAX 处理安全的公开页面跳转。它不是替换 Xiuno 框架,而是在原有框架之上补充更连续的前台浏览体验。
{% endtip %}
{% label 当前线上方案, blue %} {% label Barba PJAX, purple %} {% label 服务端渲染保留, green %}
Xiuno 继续负责路由、权限、模板渲染、数据库和发帖等核心能力;前台在访问公开页面时,只替换主要内容容器,而不是让浏览器完整卸载并重新加载整个页面。
这让首页、板块页、文章页、用户页、排行榜和友链等公开内容之间的浏览更连贯,同时保留传统论坛对登录、发帖、编辑、删除和退出等关键操作的稳定处理方式。
{% tabs 查看当前加载过程, 1 %}
barbara_loading 全屏加载层。GET 链接。登录、注册、退出、发帖、编辑、删除、后台和其他可能改变服务器状态的入口,继续使用完整页面跳转。这样可以避免重定向、表单状态、权限变化和消息提示被前台路由错误接管。
{% endtabs %}
这里的“Xiuno 原生跳转”指未额外接入 PJAX 时的常规服务端页面跳转:点击链接后,浏览器重新请求完整页面,并重新解析整个文档。
| 对比项 | Xiuno 原生完整跳转 | 当前 Barba PJAX 方案 |
| --- | --- | --- |
| 页面外壳 | 每次重新加载导航、侧栏和页脚 | 尽量保留现有外壳,只替换主要内容 |
| 视觉连续性 | 容易出现空白、闪烁或浏览器默认加载状态 | 有局部提示、进度条和内容淡入 |
| 静态资源 | 浏览器按缓存策略重新校验和加载 | 已加载的公共资源通常可继续复用 |
| 返回与前进 | 常规浏览器历史记录 | 保留浏览器历史,并在恢复页面时主动收起加载层 |
| 复杂操作 | 所有操作都是整页流程 | 写操作仍回到整页流程,降低兼容风险 |
| 首次访问 | 完整加载 | 仍是完整加载,不承诺首屏性能凭空提升 |
{% folding open green, 实际可感知的优势 %}
{% endfolding %}
{% note warning fas fa-triangle-exclamation %}
PJAX 不是后端加速器,也不会减少 Xiuno 渲染页面、查询数据库或执行插件逻辑的时间。目标页面如果本身慢,用户仍要等待服务器响应;当前方案主要改善的是等待期间的视觉连续性和重复加载体验。
{% endnote %}
当前线上也没有开启悬停预取。这意味着鼠标移到链接上不会提前请求页面,优点是节省带宽、避免无意义请求;代价是首次点击某个未缓存页面时,仍要等待正常的网络和服务端响应。
{% folding blue, 公开阅读页面适合 %}
{% endfolding %}
{% folding orange, 这些页面继续完整跳转 %}
{% endfolding %}
这种分界并不追求“所有链接都丝滑”,而是优先确保论坛的核心功能可靠。一个论坛的加载体验可以渐进增强,但账户、内容和权限操作必须保持可预期。
{% changelog 2026-07-30, 当前加载方案说明, v1.0 %}
{% change added, 当前具备 %}
{% endchange %}
{% change improved, 已采用的保护 %}
{% endchange %}
{% change fixed, 需要持续验证 %}
{% endchange %}
{% endchangelog %}
当前方案的价值不在于“比 Xiuno 更快”,而在于在不改动 Xiuno 核心架构的前提下,让公开内容浏览少一些整页闪动、多一些连续感。
Xiuno 仍然是论坛的服务端基础;Barba PJAX 只是前台体验层的渐进增强。对于内容社区,这种组合比把所有功能强行改造成单页应用更容易维护,也更适合保留现有插件生态。
{% checkbox green checked, Xiuno 继续负责服务端路由、权限与数据 %}
{% checkbox green checked, PJAX 只增强公开阅读页面 %}
{% checkbox green checked, 写操作保留完整跳转 %}
{% checkbox green checked, 页面体验与功能稳定性同时优先 %}
评论区