feat: 設備即時概況頁面加入 visibility 自動刷新
- 切回頁面時立即刷新資料(visibilitychange 事件) - Tab 隱藏時跳過自動刷新,節省資源 - 加入 console.log 追蹤刷新觸發時機 與 WIP Overview 頁面行為一致。 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
// Initialize
|
||||||
document.addEventListener('DOMContentLoaded', async () => {
|
document.addEventListener('DOMContentLoaded', async () => {
|
||||||
await loadOptions();
|
await loadOptions();
|
||||||
await checkCacheStatus();
|
await checkCacheStatus();
|
||||||
await loadData();
|
await loadData();
|
||||||
|
|
||||||
// Auto-refresh every 5 minutes
|
// Start auto-refresh
|
||||||
setInterval(() => {
|
startAutoRefresh();
|
||||||
checkCacheStatus();
|
|
||||||
loadData();
|
|
||||||
}, 5 * 60 * 1000);
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Reference in New Issue
Block a user