docs: 补充市场排名生命周期说明
This commit is contained in:
@@ -48,12 +48,38 @@ doc/ HTTP 与 4106 行情接口文档
|
||||
`firstPageVisible` 为 `true` 时获取当前 Tab 的 contracts。contracts 返回后先生成占位列表,
|
||||
再由 `MarketRankingHqRequestClient` 发起行情订阅,行情回调会整体替换 `CardData`。
|
||||
|
||||
```text
|
||||
aboutToAppear
|
||||
→ 注册 TCP 重连事件
|
||||
→ 获取当前 Tab 的 contracts
|
||||
→ 填充合约占位列表
|
||||
→ 页面可见时订阅行情
|
||||
```mermaid
|
||||
flowchart TD
|
||||
appear["aboutToAppear"] --> config["读取卡片配置"]
|
||||
config --> listen["监听 tcpReconnect"]
|
||||
listen --> visible{"firstPageVisible?"}
|
||||
visible -- 否 --> idle["等待页面恢复可见"]
|
||||
visible -- 是 --> fetch["获取当前 Tab 的 contracts"]
|
||||
fetch --> placeholder["填充合约占位列表"]
|
||||
placeholder --> stillVisible{"页面仍然可见?"}
|
||||
stillVisible -- 否 --> idle
|
||||
stillVisible -- 是 --> subscribe["订阅行情"]
|
||||
subscribe --> update["行情回调更新 CardData"]
|
||||
update --> waiting["等待下一次行情推送"]
|
||||
waiting --> update
|
||||
|
||||
refresh["refreshTrigger 变化"] --> stop["停止旧行情订阅"]
|
||||
tab["Tab 切换"] --> stop
|
||||
stop --> clear["清空列表"]
|
||||
clear --> fetch
|
||||
|
||||
hidden["firstPageVisible = false"] --> stopOnly["停止行情订阅"]
|
||||
shown["firstPageVisible = true"] --> hasContracts{"已有 contracts?"}
|
||||
hasContracts -- 是 --> subscribe
|
||||
hasContracts -- 否 --> fetch
|
||||
|
||||
reconnect["tcpReconnect"] --> reconnectVisible{"页面可见?"}
|
||||
reconnectVisible -- 否 --> idle
|
||||
reconnectVisible -- 是 --> reconnectStop["停止旧行情订阅"]
|
||||
reconnectStop --> hasContracts
|
||||
|
||||
disappear["aboutToDisappear"] --> unlisten["解绑 tcpReconnect"]
|
||||
unlisten --> stopOnly
|
||||
```
|
||||
|
||||
运行期间按以下规则更新:
|
||||
@@ -70,6 +96,25 @@ aboutToAppear
|
||||
`aboutToDisappear` 会解绑 TCP 重连监听并停止行情订阅。HTTP 请求等待期间如果页面变为
|
||||
不可见,contracts 仍可更新,但不会创建行情订阅。
|
||||
|
||||
### 当前异常与恢复处理
|
||||
|
||||
| 异常或状态 | 处理方式 |
|
||||
| --- | --- |
|
||||
| HTTP 获取 contracts 失败 | `updateCardData` 捕获异常并清空列表 |
|
||||
| TCP 连接恢复 | 收到 `tcpReconnect` 后,仅在页面可见时停止旧行情并重新订阅 |
|
||||
| TCP 重连时没有 contracts | 重新请求 contracts,请求成功后再订阅行情 |
|
||||
| TCP 重连时页面不可见 | 忽略重连事件,页面恢复可见后再订阅 |
|
||||
| 页面变为不可见 | 立即停止行情订阅 |
|
||||
| 页面恢复可见 | 优先使用已有 contracts 恢复订阅;没有数据时重新请求 |
|
||||
| 手动刷新 | 停止旧行情、重新请求 contracts,并在可见时重新订阅 |
|
||||
| Tab 切换 | 停止旧行情、清空旧列表、请求新 Tab 数据并重新订阅 |
|
||||
| HTTP 返回时页面已隐藏 | 更新 contracts,但不建立行情订阅 |
|
||||
| 组件消失 | 解绑 TCP 重连监听并停止行情订阅 |
|
||||
|
||||
当前异常处理仍属于基础兜底:尚未实现 HTTP 自动重试、错误提示、请求取消、请求序号校验,
|
||||
以及行情订阅失败后的延迟重试。快速切换 Tab 时,较早发出的请求仍可能晚于新请求返回;
|
||||
首次加载使用的延迟任务也尚未在组件消失时取消。
|
||||
|
||||
## 数据与接口
|
||||
|
||||
当前 HTTP Fetcher 仅构造请求参数,行情客户端也尚未连接真实客户端桥接层;页面使用 Mock
|
||||
|
||||
Reference in New Issue
Block a user