Browser DevTools: Effektives Debugging | Enjyn Gruppe
Hallo Welt
→
→
Hallo Welt
Original Lingva Deutsch
Übersetzung wird vorbereitet...
Dieser Vorgang kann bis zu 60 Sekunden dauern.
Diese Seite wird erstmalig übersetzt und dann für alle Besucher gespeichert.
0%
DE Zurück zu Deutsch
Übersetzung durch Lingva Translate

330 Dokumentationen verfügbar

Wissensdatenbank

Browser DevTools Debugging

Zuletzt aktualisiert: 14.07.2026 um 12:30 Uhr

Browser DevTools: Effektives Debugging

Die Browser Developer Tools sind unverzichtbar für Webentwickler. Lernen Sie die wichtigsten Funktionen für JavaScript, CSS und Performance-Debugging.

DevTools öffnen

Aktion Windows/Linux Mac
DevTools öffnen F12 oder Ctrl+Shift+I Cmd+Option+I
Element inspizieren Ctrl+Shift+C Cmd+Shift+C
Console öffnen Ctrl+Shift+J Cmd+Option+J
Suche in Dateien Ctrl+P Cmd+P

Console-Methoden

// Basis-Logging
console.log('Info');
console.warn('Warnung');
console.error('Fehler');
console.info('Information');

// Formatierung
console.log('%cStilisierter Text', 'color: blue; font-size: 20px;');
console.log('Name: %s, Alter: %d', 'Max', 30);

// Objekte und Arrays
const user = { name: 'Max', age: 30 };
console.log(user);           // Einfach
console.dir(user);           // Interaktiv
console.table([user, user]); // Als Tabelle

// Gruppierung
console.group('User Details');
console.log('Name:', user.name);
console.log('Alter:', user.age);
console.groupEnd();

// collapsed by default
console.groupCollapsed('Collapsed Group');
console.log('Versteckte Info');
console.groupEnd();

// Zeitmessung
console.time('Operation');
// ... Code ...
console.timeEnd('Operation');  // "Operation: 123.45ms"

// Zählen
function myFunc() {
    console.count('myFunc aufgerufen');
}
myFunc(); // "myFunc aufgerufen: 1"
myFunc(); // "myFunc aufgerufen: 2"

// Bedingtes Logging
console.assert(1 === 2, 'Das ist falsch!');  // Zeigt nur bei false

// Stack Trace
console.trace('Wo bin ich?');

// Objekt-Eigenschaften auflisten
console.log(Object.keys(user));
console.log(Object.entries(user));

Breakpoints setzen

// 1. Im Code: debugger Statement
function calculateTotal(items) {
    debugger;  // Hält hier an wenn DevTools offen
    return items.reduce((sum, item) => sum + item.price, 0);
}

// 2. In DevTools: Sources Panel
// - Zeile anklicken für Breakpoint
// - Rechtsklick für bedingte Breakpoints

// 3. Bedingte Breakpoints (im DevTools)
// Rechtsklick auf Breakpoint → "Edit breakpoint"
// z.B.: item.price > 100

// 4. Logpoints (kein Anhalten, nur Logging)
// Rechtsklick → "Add logpoint"
// z.B.: "Item:", item.name

Breakpoint-Typen

// In Chrome DevTools → Sources → Breakpoints Panel:

// 1. Line Breakpoints
//    Klick auf Zeilennummer

// 2. DOM Breakpoints (Elements Panel)
//    Rechtsklick auf Element → "Break on..."
//    - Subtree modifications
//    - Attribute modifications
//    - Node removal

// 3. XHR/Fetch Breakpoints
//    Sources → XHR/fetch Breakpoints
//    URL enthält: "api/users"

// 4. Event Listener Breakpoints
//    Sources → Event Listener Breakpoints
//    z.B. Mouse → click

// 5. Exception Breakpoints
//    Sources → Pause on exceptions (Icon)

Network Panel

// Wichtige Filter:
// - XHR: Nur AJAX/Fetch Requests
// - JS: Nur JavaScript-Dateien
// - CSS: Nur Stylesheets
// - Img: Nur Bilder
// - WS: WebSocket-Verbindungen

// Nützliche Spalten:
// - Status: HTTP Status Code
// - Type: Ressourcen-Typ
// - Size: Übertragene Größe
// - Time: Ladezeit
// - Waterfall: Zeitliche Darstellung

// Request Details:
// - Headers: Request/Response Header
// - Preview: Vorschau (JSON, Bilder)
// - Response: Rohe Antwort
// - Timing: Detaillierte Zeitmessung
// - Cookies: Gesendete/Empfangene Cookies

// Throttling simulieren:
// - Fast 3G, Slow 3G
// - Offline
// - Custom profiles

Elements Panel - CSS Debugging

// Computed Tab:
// - Alle berechneten Styles sehen
// - Box Model visualisiert
// - Welche Regel gewinnt?

// Styles Tab:
// - Styles live bearbeiten
// - Neue Regeln hinzufügen
// - Pseudo-Klassen togglen (:hover, :active, :focus)

// Farben:
// - Shift+Klick auf Farbwert: Formate wechseln (hex, rgb, hsl)
// - Farbpicker für visuelle Auswahl

// Box Model:
// - Doppelklick auf Werte zum Bearbeiten
// - margin, border, padding, content

// CSS Grid/Flexbox Overlay:
// - Badge neben Element zeigt Grid/Flex
// - Klick zeigt Overlay mit Linien

Performance Profiling

// Performance Panel:
// 1. Record starten (Ctrl+E)
// 2. Aktionen ausführen
// 3. Stop (Ctrl+E)

// Analyse:
// - Main: JavaScript-Ausführung
// - Network: Requests
// - Frames: FPS
// - Timings: Wichtige Metriken

// Performance API im Code:
performance.mark('start');
// ... Code ...
performance.mark('end');
performance.measure('Meine Operation', 'start', 'end');

const measures = performance.getEntriesByType('measure');
console.log(measures);

// Memory Panel:
// - Heap Snapshot: Speicherabbild
// - Allocation instrumentation: Live-Verfolgung
// - Allocation sampling: Sampling über Zeit

Application Panel

// Storage:
// - Local Storage: Schlüssel-Wert Paare
// - Session Storage: Pro Tab
// - IndexedDB: Datenbank
// - Cookies: Alle Cookies

// Cache:
// - Cache Storage: Service Worker Caches
// - Application Cache (veraltet)

// Service Workers:
// - Registrierte Worker
// - Offline-Modus simulieren
// - Push-Benachrichtigungen testen

// Manifest:
// - PWA Manifest anzeigen
// - Icons und Start-URL prüfen

Nützliche Console-Tricks

// $0 - Aktuell ausgewähltes Element im Elements Panel
$0.style.border = '2px solid red';

// $_ - Letzter ausgewerteter Ausdruck
2 + 2
$_ * 2  // 8

// $('selector') - Kurzform für querySelector
$('button.primary')

// $$('selector') - Alle Elemente (querySelectorAll als Array)
$$('div').forEach(el => console.log(el));

// copy() - In Zwischenablage kopieren
copy(JSON.stringify(myObject, null, 2));

// monitor() / unmonitor() - Funktionsaufrufe tracken
function test() { return 42; }
monitor(test);
test();  // "function test called"
unmonitor(test);

// monitorEvents() - Events auf Element tracken
monitorEvents($0, 'click');
// Klick auf Element zeigt Event-Details
unmonitorEvents($0);

// getEventListeners() - Alle Event Listener eines Elements
getEventListeners($0);

// keys() / values() - Objekt-Schlüssel/Werte
keys({a: 1, b: 2});   // ['a', 'b']
values({a: 1, b: 2}); // [1, 2]

Lighthouse Audit

// DevTools → Lighthouse Tab

// Kategorien:
// - Performance: Ladezeit, FCP, LCP, CLS
// - Accessibility: Barrierefreiheit
// - Best Practices: Sicherheit, APIs
// - SEO: Suchmaschinenoptimierung
// - PWA: Progressive Web App Kriterien

// Tipps:
// - Im Inkognito-Modus testen (keine Extensions)
// - Mobile simulieren für realistische Werte
// - Mehrere Tests für konsistente Ergebnisse
💡 Pro-Tipp: Nutzen Sie Cmd/Ctrl + Shift + P für die Command Palette in DevTools. Von dort können Sie alle Funktionen schnell erreichen, z.B. "Screenshot" für Element-Screenshots oder "Dark mode" für das Theme.

Weitere Informationen

Texterstellung mit KI-Unterstützung

Enjix Beta

Enjyn AI Agent

Hallo 👋 Ich bin Enjix — wie kann ich dir helfen?
LLMs können Fehler machen. Ihre Nachrichten werden an Google Gemini weitergeleitet.
120