站点列表可视化工作已在多篇博文中展开:蓝色脉冲与绿色完成边框、基于标记的运行中站点检测,以及三态视觉层级。v1.6.8 版本在同一区域又增加了三项用户体验改进。本文记录了这些改进背后的设计决策。
这三项改进都有一个共同的出发点:在持续数十分钟的批量维护运行中管理 10 到 20 个站点,并在不引入新的故障模式的前提下,让这段时间内的状态更易于追踪。
改进一 — 站点完成时立即刷新缩略图并更新徽章
此前,缩略图和待处理插件徽章只有在整个批量运行完成后才会刷新。如果十个站点中的第一个提前完成,其缩略图会一直保持过时状态,直到所有十个站点都处理完毕。
修复方案:在检测到站点完成的瞬间,仅刷新该已完成的站点。一个新的 _refreshCompletedSitesNow 函数被接入流式日志循环中。每次收到站点完成标记时,它会:
- 更新该站点的
?v=<mtime>参数,以强制刷新缩略图缓存 - 调用
_invalidatePendingPluginCacheForSiteIds,部分失效并重新渲染插件徽章
关键约束:每次刷新仅影响一个站点,不会中断其后仍在运行的站点。
改进二 — 将错误站点高亮显示为红色,持续 24 小时
为了在运行结束后一目了然地看出“哪个站点出现了错误”,添加了一个 site-error CSS 类 — 红色边框(#ef4444)加上浅红色背景(rgba(239,68,68,0.08)),应用于网格视图和列表视图。它遵循与现有的运行中/已完成/待处理类相同的模式。状态优先级为 running > error > completed > pending(运行中 > 错误 > 已完成 > 待处理)。
错误状态通过带有完成时间戳的 _siteErrorStatus 映射持久保存 24 小时。24 小时的时长与之前工作中的绿色完成边框保持一致 — 足够覆盖“今天发生了什么”的时间范围。启动新的维护运行会重置这些站点的先前错误徽章,因此徽章不会跨不同会话保留。
防止误报 — 仅依据标记行
错误检测逻辑中最重要的设计约束是避免误报。流式日志包含来自维护代理的许多内部行。如果检测范围过宽,一条无害的日志行可能会触发成功站点的红色徽章。
修复方案:代理在每个站点处理结束时仅输出一条确凿的标记行:
[站点名称] ✗ 维护结果:错误
[站点名称] ✓ 维护结果:正常
前端 _detectSiteResultFromLog 函数仅查找包含 Maintenance result:(维护结果:)或其日语等效内容的行。所有其他行均被忽略 — 站点保持绿色状态。这与流式日志标记博文中建立的保守方法相同:使用一个明确的标记,不从周围上下文进行推断。
权衡取舍:如果从未发出某站点的标记行,该站点将保持绿色而不是显示错误。遗漏错误徽章的危害小于显示误报
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。