52 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: dashboard.refresh.faq
title: 仪表盘不刷新 / 任务变化后看不到
type: faq
feature: dashboard
scope: end-user
locale: zh
aliases:
- 仪表盘不更新
- 任务完成了仪表盘还有
- 仪表盘要手动刷新吗
- 仪表盘有缓存
- 仪表盘没数据
related_tools: [list_tasks]
related_pages: [dashboard]
prerequisites: []
negative:
- 仪表盘没有手动刷新按钮,靠 600ms 防抖定时器自动刷
- 任务字段改动是通过 WebSocket 推送进来的,掉线时可能不同步
- 仪表盘进入页面时会立即拉一次最新数据
last_verified: v1.7.90
---
# 仪表盘不刷新 / 任务变化后看不到
## 问题
任务完成 / 改了截止时间 / 加了新任务,但仪表盘的列表 / 数字没立刻变化。
## 原因
仪表盘的数据流是「前端 store + WebSocket 推送 + 600ms 防抖定时器」的混合:
- 进入仪表盘页时立即拉一次任务列表
- 后续靠 WebSocket 推送实时变化
- 任何任务字段变更触发 `getTaskForDashboard(600)`600 毫秒后重算分组
但如果:
- WebSocket 断开重连 → 期间的事件丢失
- 浏览器后台休眠 → 定时器暂停
- 跨标签页的修改 → 仍依赖 WebSocket 推送
可能出现仪表盘看到的与真实状态有几秒差异。
## 解决
1. **手动触发重算**:进任意其他页(如左侧栏点项目)再回仪表盘 → 强制拉新数据
2. **刷新浏览器**F5彻底重拉所有 store
3. 看右下角连接状态:若显示"已断开"等几秒待重连
4. 确认任务确实生效:进任务详情看 complete_at / end_at 字段
## 不支持
- 没有"手动刷新仪表盘"按钮
- 没有刷新间隔配置(固定 600ms 防抖)
- 不支持 polling 周期性拉数据,只走 WebSocket 推送