6.3 KiB
6.3 KiB
🔧 浏览器缓存问题修复指南
🐛 当前问题
ReferenceError: issueMarkers is not defined
at TrackPlayback (components/machinery/scheduling/TrackPlayback.tsx:593:13)
✅ 问题已修复
代码文件 TrackPlayback.tsx 中的 issueMarkers 引用已被完全移除。但是,浏览器正在使用旧的缓存文件,所以仍然显示错误。
🔄 解决方案:强制刷新浏览器
方法 1:快捷键(推荐)⚡
Windows / Linux
Ctrl + Shift + R
或
Ctrl + F5
Mac
⌘ Command + Shift + R
或
⌘ Command + Option + R
方法 2:开发者工具清除缓存 🛠️
Chrome / Edge
- 按
F12打开开发者工具 - 右键点击浏览器刷新按钮(地址栏左侧)
- 选择 "清空缓存并硬性重新加载"
Firefox
- 按
Ctrl + Shift + Delete - 选择 "缓存"
- 点击 "立即清除"
- 刷新页面
方法 3:完全清除浏览器数据 🧹
Chrome / Edge
- 按
Ctrl + Shift + Delete - 时间范围:选择 "全部时间"
- 选中:
- ✅ 缓存的图片和文件
- ✅ Cookie 和其他网站数据(可选)
- 点击 "清除数据"
Firefox
- 按
Ctrl + Shift + Delete - 时间范围:选择 "全部"
- 选中:
- ✅ 缓存
- ✅ Cookie(可选)
- 点击 "立即清除"
📋 验证步骤
强制刷新后,按照以下步骤验证:
1. 打开开发者控制台
按 F12 或 Ctrl+Shift+I (Windows/Linux)
按 ⌘+Option+I (Mac)
2. 查看控制台
应该看到:
✅ 无 JavaScript 错误
✅ 无 "issueMarkers is not defined" 错误
3. 访问轨迹回放
导航路径:
农机管理 → 任务调度与跟踪 → 作业轨迹回放
4. 测试功能
✅ 页面正常加载
✅ 地图正常显示
✅ 可以选择农机和日期
✅ 可以加载轨迹
✅ 播放控制正常
✅ 参数显示正常
💡 开发期间建议设置
为避免将来再遇到缓存问题,建议:
Chrome / Edge 设置
- 打开开发者工具(F12)
- 点击 Network(网络) 标签
- 勾选 "Disable cache"(禁用缓存)
- 保持开发者工具打开
效果:只要开发者工具打开,每次刷新都会加载最新代码
Firefox 设置
- 打开开发者工具(F12)
- 点击 网络 标签
- 勾选 "禁用缓存"
- 保持开发者工具打开
🎯 为什么会出现缓存问题?
浏览器缓存机制
首次访问:
浏览器 → 下载 TrackPlayback.tsx.js → 存入缓存
后续访问:
浏览器 → 检查缓存 → 如果有缓存,直接使用
问题场景
1. 你访问了轨迹回放页面
↓
2. 浏览器下载了包含 issueMarkers 的旧代码
↓
3. 代码被存入浏览器缓存
↓
4. 我们更新了代码,移除了 issueMarkers
↓
5. 你再次访问页面
↓
6. 浏览器使用缓存中的旧代码 ❌
↓
7. 出现 "issueMarkers is not defined" 错误
🔍 如何确认缓存已清除?
方法 1:查看网络请求
- 打开开发者工具(F12)
- 切换到 Network(网络) 标签
- 刷新页面
- 查找
TrackPlayback相关的文件 - 查看 Size 列:
- ✅ 显示文件大小(如 "123 KB")= 从服务器重新下载
- ❌ 显示 "(from memory cache)" 或 "(from disk cache)" = 仍在使用缓存
方法 2:检查时间戳
在 Network 标签中,查看文件的 Time(时间) 列:
- ✅ 有时间显示 = 重新下载
- ❌ 0 ms 或很小的时间 = 可能使用缓存
🚨 如果强制刷新仍无效
终极解决方案
- 完全关闭浏览器(所有窗口和标签页)
- 重新打开浏览器
- 在打开任何页面前,按
Ctrl+Shift+Delete清除缓存 - 再访问应用
隐私/无痕模式测试
Chrome: Ctrl+Shift+N
Firefox: Ctrl+Shift+P
Edge: Ctrl+Shift+N
在隐私模式下测试,如果正常,说明确实是缓存问题。
📊 代码修复状态
✅ 已修复的代码
// TrackPlayback.tsx - 已清理
// ❌ 已删除(不再存在):
const [issueMarkers, setIssueMarkers] = useState<IssueMarker[]>([]);
// ❌ 已删除(不再存在):
interface IssueMarker { ... }
// ❌ 已删除(不再存在):
{issueMarkers.map(issue => ...)}
// ✅ 保留的功能:
- 轨迹加载
- 地图显示
- 播放控制
- 参数显示
- 统计分析
🎨 当前界面
右侧面板(3个卡片):
┌────────────────────┐
│ 📊 实时参数 │
├────────────────────┤
│ 📈 作业统计 │
├────────────────────┤
│ 💡 操作提示 │
└────────────────────┘
✨ 简洁、清爽、无问题检测卡片
✅ 检查清单
在强制刷新后,请确认:
- 浏览器缓存已清除(使用 Ctrl+Shift+R 或其他方法)
- 开发者工具控制台无错误
- 页面可以正常加载
- 地图可以正常显示
- 可以选择农机和日期
- 可以点击"加载轨迹"
- 轨迹在地图上正常显示
- 播放控制按钮正常工作
- 实时参数正常更新
- 作业统计正常显示
📞 如果问题仍然存在
如果按照以上所有步骤操作后,错误仍然存在:
-
提供以下信息:
- 使用的浏览器和版本
- 是否成功清除了缓存
- Network 标签中是否看到文件重新下载
- 控制台的完整错误信息
-
尝试其他浏览器:
- 如果在 Chrome 中有问题,试试 Firefox
- 如果在 Firefox 中有问题,试试 Chrome
-
检查服务器:
- 确认开发服务器正在运行
- 尝试重启开发服务器
🎉 预期结果
强制刷新并清除缓存后:
✅ 页面正常加载
✅ 无 JavaScript 错误
✅ 无 "issueMarkers" 相关错误
✅ 地图正常显示
✅ 所有功能正常工作
✅ 界面简洁清爽
最后更新: 2025-10-17
状态: ✅ 代码已修复,需要清除浏览器缓存
快捷方式: Ctrl + Shift + R (Windows/Linux) 或 ⌘ + Shift + R (Mac)
🔄 现在就尝试强制刷新浏览器!