function getAliveTabs() { const now = Date.now(); const alive = []; for (let key in localStorage) { if (key.startsWith("oz_heartbeat_")) { const t = parseInt(localStorage.getItem(key), 10); if (now - t < 10000) alive.push(key.replace("oz_heartbeat_", "")); } } return alive.sort(); }
function cleanupDeadTabs() { const now = Date.now(); for (let key in localStorage) { if (key.startsWith("oz_heartbeat_")) { const t = parseInt(localStorage.getItem(key), 10); if (now - t > 20000) localStorage.removeItem(key); } } } setInterval(cleanupDeadTabs, 10000);
/* --------------------------------------------------------- Helfer --------------------------------------------------------- */ const todayISO = () => new Date().toISOString().slice(0,10); const yesterdayISO = () => { let d = new Date(); d.setDate(d.getDate() - 1); return d.toISOString().slice(0,10); }; const fmt = ms => { let m = (ms/60000)|0, h = (m/60)|0; return String(h).padStart(2,"0")+":"+String(m%60).padStart(2,"0"); };
let lastTick = Date.now(); let lastDay = todayISO();
function cleanup() {save(days);}
/* --------------------------------------------------------- TICK (nur Master zählt!) --------------------------------------------------------- */ function tick() { if (!isMaster()) return;
let now = Date.now(); let diff = now - lastTick; lastTick = now;
if (diff > 0 && diff < 60000) { let t = todayISO();
if (t !== lastDay) { if (!days[t]) days[t] = 0; lastDay = t; }
/* --------------------------------------------------------- Anzeige --------------------------------------------------------- */ function updateUI() { days = load();
let t = todayISO(); let y = yesterdayISO(); let total = Object.values(days).reduce((a,b)=>a+b,0); let today = days[t] || 0; let yesterday = days[y] || 0; let activeDays = Object.keys(days).length;
Wie kann die gesamte Browser-Onlinezeit erfasst werden?
Wer wirklich eine komplette Erfassung der Onlinezeiten haben will, über Zeit und Ort, hat hier die Möglichkeit auf die "Browser-Erweiterungen", auf die "Addons" zurückzugreifen.
Das Thema hat mir keine Ruhe gelassen. Der ⏰ Online-Timer aus Teil 1 mist nur die Forum-Onlinezeit, schön und gut! Wie wäre es, wenn alles so vereinfacht wird, dass nur die Browserstandzeit gemessen wird! Wenn der PC an ist und der Browser offen ist, dann ist man meistens auch online irgendwo unterwegs. Das folgende JS macht es möglich, behält die Struktur, sieht optisch genauso aus wie in Teil 1.
Einzige Voraussetzung ist, dass mindestens ein Forum-TAB geöffnet wurde.
⛶
Online-Timer-Leiste
⛶
Online-Timer-Info / Klick auf Pfeil
⛶
Online-Timer-Papierkorb
Gesamte Browser-Standzeit anzeigen, über alle Tage, bis Reset.
Browser-Onlinezeit von Heute, Gestern und die gesamte Onlinezeit wird angezeigt.
Anzahl der aktiver Tage.
Mit automatischer Tageswechsel‑Erkennung. Wenn ein neuer Tag beginnt, wird die Browser-Onlinezeit auf "Gestern" geschoben.
Reset‑Funktion mit Sicherheitsdialog. Löscht alle gespeicherten Zeiten und startet bei 0 .
Jeder TAB aktualisiert die Anzeige sofort, wenn sich die Daten ändern!
Ältere Tage werden automatisch gelöscht, damit der Speicher klein bleibt!
Tooltipps werden angezeigt, Spoiler mit Hilfe, animierte, pulsierende Anzeige, kompakte Anzeige mit Symbolen.
Minimaler Master‑Mechanismus.
Keine spezielle TAB-Erkennung mit ID.
Einziger Intervall‑Timer. Alle 5 Sekunden wird geprüft, wieviel Zeit seit dem letzten Tick vergangen ist.
Die Zeit wird pro Tag in [YYYY‑MM‑DD] gespeichert.
Jeder TAB liest die Daten aus dem lokalen Browser-Speicher "localStorage " und aktualisiert seine Anzeige sofort.
Beim Tageswechsel wird ein neuer Tag automatisch angelegt und der alte Tag nach "Gestern " übertragen.
Am besten ein Plugin unter "Untere Leiste - Header" anlegen! Wichtig! Im Plugin müssen rechts oben "Unterstützte Templates " markiert werden, z.B.: Business - Template (144) und Mobile - Template (177) (Auswahl: Strg + Mausklick )!
Über den jeweiligen Skriptzeilen steht, was sie bewirken!
In Zeile 4-7 können die Farben und das Aussehen angepasst werden!
Speziell über "margin " in "Zeile 4 " kann der obere und untere Abstand des Online-Timers bestimmt werden.
Mit Hilfe der Zeile 27 können speziell in der mobilen Version Anpassungen vorgenommen werden.
In Zeile 95-103 stehen die Informationen zum Online-Timer
Die Position des Online-Timer wird über Zeile 106 bestimmt! Sie ergibt sich durch die DIV-Containern mit den "Classes " und "ID's " (Rechte Maustaste "Untersuchen") und mit "before " (vor DIV), "after " (nach DIV), "prepend " (im DIV am Anfang) und "append" (im DIV am Ende)!