views/layout_footer.php (~line 266): setInterval(loadNotifications, 60000) runs unconditionally, with no Page Visibility API check (document.hidden) to pause while the tab is backgrounded. loadNotifications()'s .catch() (~lines 241-243) just shows "Could not load" and lets the next 60s tick retry at the same fixed cadence, with no exponential backoff if the server is genuinely down.
Low impact (one request/minute/tab) but scales linearly with idle background tabs left open, and hammers a genuinely-down server at a fixed rate instead of backing off.
Fix: Pause polling via document.addEventListener('visibilitychange', ...) when hidden, and add simple exponential backoff on repeated poll failures.
**Severity:** Low
`views/layout_footer.php` (~line 266): `setInterval(loadNotifications, 60000)` runs unconditionally, with no Page Visibility API check (`document.hidden`) to pause while the tab is backgrounded. `loadNotifications()`'s `.catch()` (~lines 241-243) just shows "Could not load" and lets the next 60s tick retry at the same fixed cadence, with no exponential backoff if the server is genuinely down.
Low impact (one request/minute/tab) but scales linearly with idle background tabs left open, and hammers a genuinely-down server at a fixed rate instead of backing off.
**Fix:** Pause polling via `document.addEventListener('visibilitychange', ...)` when hidden, and add simple exponential backoff on repeated poll failures.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Severity: Low
views/layout_footer.php(~line 266):setInterval(loadNotifications, 60000)runs unconditionally, with no Page Visibility API check (document.hidden) to pause while the tab is backgrounded.loadNotifications()'s.catch()(~lines 241-243) just shows "Could not load" and lets the next 60s tick retry at the same fixed cadence, with no exponential backoff if the server is genuinely down.Low impact (one request/minute/tab) but scales linearly with idle background tabs left open, and hammers a genuinely-down server at a fixed rate instead of backing off.
Fix: Pause polling via
document.addEventListener('visibilitychange', ...)when hidden, and add simple exponential backoff on repeated poll failures.