Auto-refresh: 5min pagina corrente + 2min lista spesa bg

- Intervallo pagina corrente: 5 minuti (era 10) -> dashboard, inventario,
  scadenze aperte, ricette, log si aggiornano automaticamente
- Intervallo lista spesa: 2 minuti in background anche se non sei sulla
  pagina Shopping -> badge/contatore aggiornato, e se sei sulla pagina
  Shopping vedi i nuovi prodotti aggiunti da Bring! da un altro device
- refreshCurrentPage() ora copre anche 'recipe' e 'log'
- visibilitychange: refresh immediato su qualsiasi pagina (già presente)
This commit is contained in:
dadaloop82
2026-04-09 05:07:16 +00:00
parent 7f0d4d817b
commit f86059cdcd
+22 -11
View File
@@ -942,6 +942,9 @@ function refreshCurrentPage() {
case 'inventory': loadInventory(); break;
case 'shopping': loadShoppingList(); break;
case 'products': loadAllProducts(); break;
case 'recipe': loadRecipeArchive(); break;
case 'log': loadLog(); break;
// scan/ai/settings/chat: nessun dato live da ricaricare
}
}
@@ -8620,20 +8623,28 @@ document.addEventListener('DOMContentLoaded', () => {
initScreensaverShortcuts();
startBgShoppingRefresh();
// ── Auto-refresh dati ogni 10 minuti ──────────────────────────────────
// Garantisce che scadenze e contatori si aggiornino anche senza toccare
// la schermata (es. pagina aperta tutta la notte).
const DATA_REFRESH_INTERVAL = 10 * 60 * 1000; // 10 minuti
// ── Auto-refresh dati ─────────────────────────────────────────────────
// 1) Ogni 5 minuti: ricarica la pagina corrente (scadenze, inventario, ecc.)
setInterval(() => {
if (!_screensaverActive) {
refreshCurrentPage();
if (!_screensaverActive) refreshCurrentPage();
}, 5 * 60 * 1000);
// 2) Ogni 2 minuti: aggiorna lista spesa in background (anche se non sei
// sulla pagina Shopping), così i prodotti aggiunti da un altro dispositivo
// su Bring! appaiono subito quando torni sulla schermata.
setInterval(() => {
if (_screensaverActive) return;
if (_currentPageId === 'shopping') {
loadShoppingList(); // già visibile → aggiorna tutto
} else {
// Aggiorna solo il badge/contatore senza cambiare pagina
loadShoppingCount();
}
}, DATA_REFRESH_INTERVAL);
// Aggiorna anche quando la tab torna visibile dopo essere stata in background
}, 2 * 60 * 1000);
// 3) Aggiorna immediatamente quando la tab torna visibile (es. torni da Bring! app)
document.addEventListener('visibilitychange', () => {
if (!document.hidden) {
refreshCurrentPage();
}
if (!document.hidden) refreshCurrentPage();
});
// ─────────────────────────────────────────────────────────────────────