Skip to content

v6.8.9

Choose a tag to compare

@github-actions github-actions released this 14 Oct 19:27
· 11 commits to main since this release
v6.8.9
cb14040

前端分块依赖代码所在目录和手写的别名与特判,产生大量小块,页面加载要经历入口、路由等多次串行往返,每次发版几乎所有前端文件都随入口改名、回访要重新下载,首屏还会先显示“加载中”再等 React 的 300 毫秒揭示节流;公开基础 URL 的长度上限只检查原始值,路径含大量中文时能保存却无法再次读取。

perf:

  • 前端分块改为只按导入图和懒加载处的 /* @chunk … */ 权限、访问频率声明自动决定,声明由 Vite 的解析器定位:先把模块放入其所有懒加载根都必经的那个根,再比较访客与管理员各自要下载的字节、每个文件的请求头与导入映射条目,合并能节省的块;首次访问按访问权重计,管理员多数带缓存、按五分之一计,发版后回访只计含应用代码的块。加载一个块会连带加载它导入的块,合并的代价连同这些块一起计,且不合并会造成块间循环导入的单位;样式按内联 @import 后的全文计量。代码只合并到同层或更高权限的页面,未声明权限的懒加载代码按打开它的代码中权限最低的一方归层,声明写错、无法解析或被权限更低的代码静态导入时构建失败;每个页面因合并多下载的代码有上限。按本地测量,展映冷启动传输约少 12 KB、串行加载由 5 层减为 3 层、请求由 23 个减为 15 个,首页约少 15 KB、请求由 11 个减为 8 个,画廊少 1 个请求、传输约多 1 KB(含页面文档内联的约 1.3 KB 导入映射),后台登录页约少 9 KB;后台分组、词表、检查、账户、概览页冷启动约少 4 至 13 KB,图片页约多 15 KB、分组详情约多 10 KB、存储与设置页约多 4 至 6 KB,在图片页中打开编辑器约少 4 KB、接入约多 5 KB;首页再进画廊约多 16 KB。
  • 块之间改按稳定名互相导入,服务端在每份页面文档中内联导入映射,把稳定名映射到当前文件(地址随静态资源地址改写,CSP 按映射内容的哈希放行),发版后只有内容变了的文件需要重新下载;第三方代码与构建工具注入的辅助代码起初同应用代码分开成块,只随依赖升级变化,按成本才与应用代码合并(如访问很少的登录验证码与词表页);小于 1 KiB 的产物由 19 个减为 4 个,产物文件由 96 个减为 69 个。按模拟发版测量,公开页改动后回访展映需重新下载的部分由约 179 KB 降为约 2 KB(只有页面文档),首页 45 → 2 KB,画廊 64 → 14 KB,拼音筛选 67 KB → 0;入口组件改动后各页约 20 KB。
  • 服务端在页面文档中预加载路径实际显示的页面需要的脚本与样式(关闭的页面按路由的回退规则换成回退页面),入口运行时即开始加载该页面,就绪后再首次渲染,加载失败时显示路由的错误提示;等待期间由页面文档直接显示“加载中…”,慢速网络下从文档到达起就有提示,页面就绪后一次替换,不再等待 React 的 300 毫秒揭示节流。后台页面文档同时预加载登录状态请求,首次渲染前按登录状态加载登录页,或登录后的工作区与当前页面。连同分块变化,本地 4G 限速下首页、画廊、嵌入画廊内容出现约提前 230 至 290 毫秒,展映约 100 毫秒,后台登录页约 480 毫秒,已登录直接打开后台页面约 340 至 370 毫秒;同一版本回访时公开页约提前 290 至 310 毫秒,后台约 510 毫秒。

fix:

  • 静态资源地址与存储后端公开地址的长度上限改为同时检查规范化后的长度:路径含大量中文等需要编码的字符时,超长的值在保存时就被拒绝,不再出现保存成功、重启或读取时失败。
  • 展映与画廊向下滚动隐藏的工具栏不再接收点击,与隐藏的顶栏一致。

style:

  • 图片详情窗口管理信息中的“存储”改为“存储信息”。

refactor:

  • 后台概览、日志、用户、词表页面移入各自目录,分组请求与永久删除进度客户端移到所属页面旁;共用块的文件名统一为 common(访客也会加载)与 shared(只有管理员加载),不再按使用它的页面拼出长名字,块名按工作区相对路径计算,不同机器一致。
  • 后台工作区页面的地址、模块与所需权限集中为一张表,路由注册与首屏选择页面共用;公开页面的启用、回退与嵌入规则集中为一个函数,路由、首屏加载与服务端文档预加载共用,嵌入关闭时不再注册嵌入布局。
  • 编辑器中的图片存储迁移声明为超级管理员能力,分块时不与图片管理员代码合并。
  • 公开与后台共用的移动导航菜单文字改用后台可覆写的颜色别名,后台外观不再依赖公开样式是否加载。

test:

  • 配置用例补公开地址规范化后长度的拒绝与往返断言,页面文档改为按各自 ETag 校验条件请求并比较预加载与加载文字颜色以外的内容,补关闭页面预加载回退页、导入映射按静态资源地址改写且 CSP 按其哈希放行的断言,脚本来源断言改为含映射哈希,删除与严格保存重复的脚本来源环境播种断言;Web 构建门禁改为核对四层权限分界(登录与登录验证码不含外壳与登录文件以外的后台页面模块及图片管理员能力)、块导入无环、重复资产与文档预加载清单;静态压缩装配夹具补预加载清单,Web 用例随目录移动更新导入;站点根入口用例补路径实际显示页面的断言,模块加载用例补首屏加载失败后不再重复导入的断言,会话用例补公开页首屏会话读取按所有者重试的断言,嵌入光标与安全区用例改为按挂载启停桥接。

chore:

  • Web 参考、结构指南与通用规则同步新的分块规则、权限与访问声明和后台目录约定;安全参考写明文档 CSP 按导入映射的哈希放行,以及前端静态资源(含后台代码)公开可取、权限只由服务端强制;交付规范增加只修改拟用提交信息或 Release 文案时的审查要求(主进程自查,不重新复审或跑门禁)。
  • 根包与三个 workspace 版本统一为 6.8.9。