Files
chanlun_1/auto_refresh_feature.md
T
2025-05-23 21:19:32 +08:00

128 lines
4.6 KiB
Markdown

# 自动刷新功能说明
## 功能概述
在缠论分析系统中新增了自动刷新功能,允许用户设置定时自动刷新数据,实时监控市场变化。
## 功能特性
### 1. 自动刷新控制
- **启用/禁用开关**: 通过勾选框控制自动刷新的开启和关闭
- **智能状态管理**: 启用时激活相关控件,禁用时自动禁用下拉菜单
### 2. 刷新间隔设置
支持以下刷新间隔选项:
- 5秒
- 10秒
- 15秒 (默认)
- 30秒
- 1分钟
- 5分钟
### 3. 实时状态显示
- **刷新状态**: 显示当前自动刷新的启用状态和间隔设置
- **下次刷新时间**: 显示预计下次刷新的时间
- **更新时间**: 在统计信息中显示最后更新的时间
- **更新方式**: 区分手动刷新和自动刷新
## 界面布局
新增的自动刷新控制面板位于原有控制面板下方,包含:
```
┌─ 自动刷新控制行 ─────────────────────────────────────┐
│ [自动刷新:] [刷新间隔:] [刷新状态:] [下次刷新:] │
│ ☐ 启用自动刷新 [15秒 ▼] 未启用 -- │
└──────────────────────────────────────────────────────┘
```
启用自动刷新后:
```
┌─ 自动刷新控制行 ─────────────────────────────────────┐
│ [自动刷新:] [刷新间隔:] [刷新状态:] [下次刷新:] │
│ ☑ 启用自动刷新 [15秒 ▼] 已启用-每15秒刷新 14:30:45 │
└──────────────────────────────────────────────────────┘
```
## 使用方法
### 1. 启用自动刷新
1. 勾选"启用自动刷新"复选框
2. 刷新状态会显示为"已启用 - 每X秒刷新"
3. 刷新间隔下拉菜单变为可用状态
### 2. 设置刷新间隔
1. 确保自动刷新已启用
2. 在"刷新间隔"下拉菜单中选择所需的时间间隔
3. 状态文字会立即更新显示新的间隔
### 3. 开始自动刷新
1. 首次需要点击"获取数据并分析"按钮获取初始数据
2. 之后系统会根据设定的间隔自动刷新数据
3. 自动刷新时会保持所有其他设置参数不变
### 4. 监控刷新状态
- 查看"下次刷新时间"了解预计刷新时间
- 在统计信息中查看"最后更新"时间
- "更新方式"会显示是"自动刷新"还是"手动刷新"
## 技术实现
### 1. 组件结构
- `dcc.Checklist`: 自动刷新开关
- `dcc.Dropdown`: 刷新间隔选择
- `dcc.Interval`: 定时器组件
- `dcc.Store`: 存储自动刷新设置
- `html.Div`: 状态显示组件
### 2. 回调函数
- `control_auto_refresh`: 控制自动刷新功能的启用/禁用
- `update_next_refresh_time`: 更新下次刷新时间显示
- `analyze_data_with_auto_refresh`: 处理自动刷新触发的数据分析
### 3. 状态管理
- 自动刷新设置存储在 `auto-refresh-settings` Store中
- 定时器组件的enabled状态根据设置动态切换
- 刷新间隔实时更新定时器的interval属性
## 测试验证
### 手动测试步骤
1. 访问 http://localhost:8051
2. 查看自动刷新控制面板是否正常显示
3. 测试启用/禁用自动刷新功能
4. 测试不同刷新间隔的设置
5. 验证自动刷新是否按设定间隔工作
6. 检查状态显示是否准确更新
### 预期行为
- 初始状态:未启用,下拉菜单禁用
- 启用后:状态更新,下拉菜单可用
- 更改间隔:状态文字立即更新
- 自动刷新:数据按间隔自动更新
- 保持设置:其他参数在自动刷新时不变
## 注意事项
1. **首次使用**: 启用自动刷新后需要先手动获取一次数据
2. **网络连接**: 自动刷新依赖网络连接,连接异常时可能失败
3. **性能影响**: 短间隔刷新可能增加服务器负载
4. **浏览器要求**: 需要JavaScript支持,建议使用现代浏览器
5. **数据一致性**: 自动刷新会保持所有分析参数设置不变
## 故障排除
### 自动刷新不工作
- 检查是否已勾选"启用自动刷新"
- 确认已先进行过一次手动数据获取
- 查看浏览器控制台是否有错误信息
### 状态显示异常
- 刷新页面重新加载组件
- 检查网络连接是否正常
- 确认后端服务是否正常运行
### 刷新间隔不准确
- 网络延迟可能影响实际刷新间隔
- 数据处理时间会额外增加总耗时
- 建议设置不小于5秒的刷新间隔