fix(web): recover the home screen when the bundle never runs

This commit is contained in:
jesse-ux
2026-09-22 12:13:17 +08:00
parent 6ac61be07d
commit 337d820076
18 changed files with 882 additions and 22 deletions
@@ -0,0 +1,23 @@
# 真人 / 模拟清单 · 首页加载失败可恢复(2026-09-22)
BUG-936 的根因还没定。下面能做的是看兜底是否出现、点了是否只刷新一次。低版本 Safari 和故意弄坏 chunk 的浏览器检查是环境缺口,不是通过。
兜底补上不等于每个 Safari 用户都已修好。要完成分流,仍需要当事人的 iOS 版本,以及无痕窗口或清除本站数据之后是否恢复。
## 本机可以模拟
1. 打开首页 HTML。在开发者工具里把后续脚本请求阻断,或在元素面板里留下 `.app-loading` 且不要给 `<html>` 加上 `data-hydrated="1"`。等超过 13 秒。
2. 应看到标题「这个页面没能加载完」,正文说明网络中断或浏览器版本过旧,并提示 Safari 清除本站数据或升级到 iOS 16.4 以上。只有一枚「重新加载」。页面不会自己刷新。
3. 点「重新加载」才整页刷新。再停在同一屏时,仍然不会自动连刷。
4. 正常打开现代浏览器的首页:揭幕完成前不要闪出上面这句。揭幕后轨道环不再出现。
5. 把网络掐断后,如果客户端 bundle 已经跑起来并在 8 秒内失败,仍应是原来的「暂时无法进入 Jyotisha / 连接云端服务超时」,不要换成死屏这句。这两种失败不是同一件事。
## 环境缺口(本轮未做,不能写成通过)
- 没有当事人的 iPhone。不知道 iOS / Safari 版本,也不知道清除网站数据或无痕窗口之后是否恢复。BUG-936 根因因此仍是「待分流」。
- 没有一台 Safari 16.4 以下的设备。本仓断句已经去掉后行断言,但 Next 运行时仍有类静态块,低版本 Safari 仍可能在解析期失败。本清单不能证明那一类设备已经能进首页。
- 没有在已构建页面上故意把某个 `/_next/static/chunks/*.js` 改成 404 或截断后再用真实浏览器等 13 秒。自动化只在假 DOM 里跑过这段内联脚本。
## 不该看到的东西
兜底文案、按钮和 `data-bootstrap-failure` 都不写异常原文、出生资料、token 或请求体。观察标记如果出现,只有类别、构建标识和耗时。