网页状态与操作时序矩阵
网页的大多数问题都可以先按状态判断,再决定是否重试。每个页面通常同时存在“加载页面”“读取数据”“保存数据”“等待机台动作”和“重新读取”五个层次;看到一个按钮变灰,不一定代表功能不可用。
通用状态
| 状态 | 页面表现 | 可以做 | 不要做 |
|---|---|---|---|
| 未登录 | 显示登录入口或账号选择器 | 添加/选择账号 | 猜测受保护地址 |
| 登录中 | 按钮显示处理中 | 等待一次结果 | 连续提交同一凭据 |
| 已登录未读取 | 页面结构存在,卡片为空 | 点击刷新 | 把空列表当成数据丢失 |
| 读取中 | 骨架、旋转图标或按钮禁用 | 等待或取消浏览器等待 | 并行发起同一读取 |
| 空数据 | 明确显示暂无数据 | 检查账号、范围、同步 | 立即恢复或删除 |
| 读取成功 | 卡片、列表或图表出现 | 进行只读检查 | 直接假设写入也会成功 |
| 保存中 | 当前按钮和字段被锁定 | 等待结果 | 修改同一卡片多次 |
| 保存成功 | Toast、消息或状态变化 | 重新读取确认 | 立刻刷新导致结果丢失 |
| 业务失败 | 显示服务消息 | 保存原值并排查 | 盲目改参数重试 |
| 网络失败 | 显示网络错误 | 检查连接和最后状态 | 清空缓存或删除数据 |
页面级时序
登录与账号选择
打开账号选择器
→ 选择本地条目或添加账号
→ 输入二维码/账号密码
→ 本地校验通过
→ 请求进行中
→ 成功:关闭弹窗并显示账号
→ 失败:保留表单和消息,允许修正成功的判据不是“按钮消失”,而是顶部账号名称、账号类型和可见菜单都与目标账号一致。切换账号前应先让当前页面的写入操作结束。
主页
主页的统计卡片可能独立加载:
- 先确认账号和 Token;
- 读取服务级统计;
- 读取配方拉取统计;
- 展示地区或帮助区;
- 对失败卡片单独重试。
一个统计卡片失败不应阻断缓存、记录或配方页面。报告问题时写清楚是整页失败还是某张卡片失败。
配方
配方页面的安全时序是:
读取 → 复制原值 → 只改一个字段 → 保存 → 等待消息
→ 重新读取 → 按提示热重载/冷重启 → 最小验收开关、值和图片可能是独立的保存动作。图片自动提交期间不要再点击同一卡片的保存按钮;JSON 出现语法错误时,先恢复最近的有效文本。
缓存和上传缓存
普通备份的时序:下载当前状态 → 本地保存 → 选择文件 → 解析预览 → 二次确认 → 恢复 → 重新读取。
上传缓存的时序:刷新列表 → 选择服务返回的索引 → 下载留档 → 填写页面要求的访问码 → 上传一次 → 重新刷新列表和记录。
响应超时只表示客户端没有得到明确结果。先读取列表或状态,再判断是否需要重试。
相片
相片页面通常先读取文件名列表,再按需读取单张文件。缩略图加载和列表加载是两个阶段:缩略图失败时不要直接删除文件。删除全部和删除单张都应在下载需要保留的图片后操作。
记录与成绩
记录页面先请求一页,再根据返回条数推进页码。成绩页面可能先读取索引,再加载互动、评论或详情。空搜索结果、空账号数据和请求失败要分别显示。
查卡与统计
查卡页面先读取可见机台,再读取选中目标的统计。自动刷新启动后,页面会周期性读取;切换页面、Token 失效或取消选择后应停止刷新。多机台合并后要保留来源信息,不能把合并值误称为单机台值。
机台管理
机台管理操作的时序更长:
刷新健康 → 确认机台空闲 → 打开操作弹窗
→ 填写并本地校验 → 确认风险 → 发送动作
→ 等待结果/进度 → 刷新健康和订单 → 现场验收“取消”通常只停止当前浏览器等待,不保证机台已经撤销动作。执行重启、挂载、删除、订单应用或直播相关动作前,必须记录当前状态。
写入动作的重复提交规则
| 动作 | 超时后的第一步 | 是否立即重试 |
|---|---|---|
| 登录 | 验证 Token 或刷新账号状态 | 否,先生成/确认新凭据 |
| 保存配方 | 重新读取该字段 | 只有确认未保存才重试 |
| 发布评论 | 重新读取评论列表 | 否,避免重复内容 |
| 上传缓存 | 重新读取上传缓存列表 | 只有确认未成功才重试 |
| 删除相片 | 重新读取文件列表 | 只有文件仍存在且用户确认 |
| 删除订单项 | 重新读取订单配置 | 否,先确认范围 |
| 重启或机台控制 | 刷新健康和操作结果 | 不要重复触发 |
空状态判定
空状态至少有四种:
- 账号确实没有数据;
- 当前筛选或时间范围没有数据;
- 服务处理尚未完成;
- 请求失败后页面暂时没有数据。
判断时依次看页面消息、HTTP/业务结果、账号类型、时间范围、最后同步时间和其它只读页面。只有在多个证据一致时,才把空状态当作真实空数据。
失败反馈要写什么
最小有效反馈包括:
- 页面和操作名称;
- 点击前后的状态;
- 发生时间和时区;
- 是否只发生在一个账号/机台;
- 错误消息;
- 是否刷新、重启或再次提交过;
- 相关订单、分支或内容的脱敏名称。
不要只说“不能用”,也不要直接发送完整凭据、备份、网络配置或原始日志。
移动端额外检查
- 打开汉堡菜单后确认点击页面外部可以关闭;
- 二维码预览和复制按钮不被浏览器工具栏遮挡;
- 长 JSON 和表格可以横向滚动;
- 文件选择、下载和图片预览获得系统权限;
- 自动刷新在切换页面后停止;
- 深色模式下错误文字和禁用按钮仍可辨识。
手工回归最小集合
每次网页更新后至少执行:
- 未登录打开首页;
- 添加或选择一个测试账号;
- 登录并切换浅色/深色;
- 打开主页、访问码和配方;
- 打开缓存、上传缓存、相片、记录和成绩;
- 在有权限的账号上打开查卡和机台管理;
- 刷新一次页面并返回主页;
- 检查浏览器控制台没有新增错误;
- 退出或切换账号;
- 确认本地账号条目和服务端数据没有被误删。
不同账号类型不可见的页面应记录为“按权限隐藏”,不要把隐藏当作回归失败。
