Skip to content

feat: reduce webui/admin rerenders and cache header metadata#459

Merged
chenyme merged 3 commits intomainfrom
perf_frontend
Apr 12, 2026
Merged

feat: reduce webui/admin rerenders and cache header metadata#459
chenyme merged 3 commits intomainfrom
perf_frontend

Conversation

@chenyme
Copy link
Copy Markdown
Owner

@chenyme chenyme commented Apr 12, 2026

Summary

  • 优化前端渲染性能,覆盖 WebUI 和 Admin 两侧的主要卡顿点。
  • WebUI Chat 改为按帧批处理流式更新,减少滚动抖动,并避免在回复完成时整段会话全量重渲染。
  • WebUI Masonry 改为复用 tile 节点、增量更新进度和完成计数,减少高频 replaceChildren() 带来的重排重绘。
  • WebUI ChatKit 优化状态栏与音频节点更新,避免重复 DOM 写入和全量音频节点扫描。
  • Admin 账号页缓存筛选/统计结果,减少同一批数据被重复遍历;配置页改为按依赖局部刷新,避免每次输入都全页面扫描。
  • Header 增加按构建版本隔离的缓存,减少跨页重复请求 header 模板和版本信息,同时避免部署新版本后继续读取旧缓存。

Testing

  • node --check app/statics/js/webui/chat.js
  • node --check app/statics/js/webui/masonry.js
  • node --check app/statics/js/webui/chatkit.js
  • node --check app/statics/js/webui-header.js
  • node --check app/statics/js/admin-header.js
  • 使用 Node 解析校验 app/statics/admin/account.htmlapp/statics/admin/config.html 内联脚本语法
  • 本地启动服务进行 smoke test:uv run granian --interface asgi --host 127.0.0.1 --port 18082 --workers 1 app.main:app
  • 路由验证:当前本地配置 data/config.tomlwebui_enabled = false,因此 GET /webui/chat/webui/masonry/webui/chatkit 返回 404,符合当前配置预期

Related

  • N/A

@chenyme chenyme merged commit 31c035c into main Apr 12, 2026
4 checks passed
@chenyme chenyme deleted the perf_frontend branch April 20, 2026 06:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant