Übersicht-Feinschliff + Idle-Fairness
- Überschrift „Klassenübersicht", Sektion „Empfohlene Aktivität für dich." - Volle Legende (Gradient-Balken, Ampelpunkte, Beispiel-Sparkline) - 4b-Testdaten: jede Triage-Karte besetzt (Beteiligen/Begleiten/Fördern/Fordern/ Bestätigen), Verlauf in den letzten 10 Wochen inkl. steigender Fälle - live-client.js: Idle-Fenster 90s→5min (Lesen/Denken nicht bestrafen) + Tab-Sichtbarkeit blendet echtes Weg-Sein aus Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -52,7 +52,10 @@
|
||||
// Tab-Schließung, etc.).
|
||||
// Hard-Cap: 120 min pro Sim-Lauf. Frontend stoppt von selbst,
|
||||
// Backend (assessment.php/progress.php) capped zusätzlich defensiv.
|
||||
var IDLE_THRESHOLD_MS = 90000; // 90 s ohne Interaktion → idle
|
||||
// Großzügig (5 min): Lesen und Nachdenken sollen NICHT als „weg" gelten.
|
||||
// Scrollen/Mausbewegung zählen ohnehin als Interaktion (siehe EVENTS), und
|
||||
// echtes Weg-Sein (anderer Tab) wird über die Tab-Sichtbarkeit ausgeblendet.
|
||||
var IDLE_THRESHOLD_MS = 300000; // 5 min ohne jede Regung → idle
|
||||
var MAX_SESSION_MS = 7200000; // 120 min — Plattform-Hardcap
|
||||
var TICK_MS = 1000; // Auflösung der activeMs-Akkumulation
|
||||
var sessionStartedAt = Date.now();
|
||||
@@ -77,6 +80,9 @@
|
||||
var now = Date.now();
|
||||
var delta = now - lastTickAt;
|
||||
lastTickAt = now;
|
||||
// Tab nicht sichtbar (anderer Tab, minimiert) → echtes Weg-Sein, nicht zählen.
|
||||
// Denkpausen bei SICHTBAREM Tab bleiben über das großzügige Idle-Fenster erhalten.
|
||||
if (typeof document !== 'undefined' && document.hidden) return;
|
||||
// Plausibilität: bei Tab-Sleep kann delta riesig sein → max einen Tick
|
||||
// anrechnen, der Rest war definitiv nicht aktive Spielzeit.
|
||||
if (delta > TICK_MS * 3) delta = 0;
|
||||
|
||||
Reference in New Issue
Block a user