feat: 設備即時概況頁面加入 visibility 自動刷新

- 切回頁面時立即刷新資料(visibilitychange 事件)
- Tab 隱藏時跳過自動刷新,節省資源
- 加入 console.log 追蹤刷新觸發時機

與 WIP Overview 頁面行為一致。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
beabigegg
2026-02-03 19:06:26 +08:00
parent 5517e5f767
commit c034985e07

View File

@@ -1619,17 +1619,46 @@
}
}
// ============================================================
// Auto-refresh
// ============================================================
const REFRESH_INTERVAL = 5 * 60 * 1000; // 5 minutes
let refreshTimer = null;
function startAutoRefresh() {
if (refreshTimer) {
clearInterval(refreshTimer);
}
console.log('[Resource Status] Auto-refresh started, interval:', REFRESH_INTERVAL / 1000, 'seconds');
refreshTimer = setInterval(() => {
if (!document.hidden) {
console.log('[Resource Status] Auto-refresh triggered at', new Date().toLocaleTimeString());
checkCacheStatus();
loadData();
} else {
console.log('[Resource Status] Auto-refresh skipped (tab hidden)');
}
}, REFRESH_INTERVAL);
}
// Handle page visibility - refresh when tab becomes visible
document.addEventListener('visibilitychange', () => {
if (!document.hidden) {
console.log('[Resource Status] Tab became visible, refreshing...');
checkCacheStatus();
loadData();
startAutoRefresh();
}
});
// Initialize
document.addEventListener('DOMContentLoaded', async () => {
await loadOptions();
await checkCacheStatus();
await loadData();
// Auto-refresh every 5 minutes
setInterval(() => {
checkCacheStatus();
loadData();
}, 5 * 60 * 1000);
// Start auto-refresh
startAutoRefresh();
});
</script>
{% endblock %}