Guida pratica per leggere cosa succede nel front-end

Nota iniziale

Quando una pagina non si comporta come ti aspetti, la tentazione è cambiare codice a caso finché qualcosa torna a posto.

Le DevTools servono proprio a evitare quel modo di lavorare. Ti aiutano a guardare il browser mentre interpreta HTML, CSS, JavaScript, immagini, richieste di rete e dati salvati.

Questa guida non vuole coprire ogni pannello in profondità. L'obiettivo è darti una routine semplice per capire dove guardare quando layout, script, immagini, chiamate API o prestazioni non funzionano.

1. Il browser non è una scatola nera

Panoramica dei pannelli principali delle DevTools del browser
I pannelli principali servono a separare i problemi: struttura, stile, script, richieste, dati locali e prestazioni.

Una pagina web non è solo il file che hai scritto. Nel browser diventa una combinazione viva di DOM, CSS calcolato, JavaScript eseguito, asset caricati e stato della sessione.

Per questo le DevTools sono fondamentali: mostrano la versione che il browser sta davvero usando, non solo quella che pensi di aver creato nel progetto.

All'inizio ti basta conoscere bene questi pannelli:

  • Elements: struttura HTML, classi, attributi e CSS applicato.
  • Console: errori JavaScript, avvisi e prove veloci.
  • Sources: file caricati, breakpoint e debug passo passo.
  • Network: file caricati, richieste API, status code e tempi.
  • Application: localStorage, sessionStorage, cookie, cache e service worker.
  • Performance, Memory e Lighthouse: analisi più mirate su velocità, memoria e qualità generale.

Non serve aprire tutto ogni volta. Serve sapere quale pannello risponde alla domanda che hai in testa.

2. Inspector: HTML e CSS reali

Il pannello Elements è il punto di partenza quando qualcosa visivamente non torna: spazio, colore, allineamento, font, dimensioni, hover, classi mancanti.

La cosa più importante da capire è questa: non stai guardando il file HTML originale, ma il DOM dopo che il browser e JavaScript lo hanno costruito.

Usalo per rispondere a domande molto concrete:

  • l'elemento esiste davvero nella pagina?
  • ha la classe che mi aspetto?
  • quale regola CSS sta vincendo?
  • una proprietà è barrata perché sovrascritta?
  • il box model spiega margini, padding o dimensioni strane?

Una buona abitudine: prima ispezioni l'elemento, poi modifichi temporaneamente CSS e classi nelle DevTools. Quando hai capito la correzione, la riporti nel file vero.

3. Console: errori e prove rapide

La Console è il posto in cui il browser ti parla in modo più diretto. Se JavaScript si rompe, spesso il primo indizio serio è lì.

Non limitarti a leggere "rosso = panico". Guarda tre cose: il messaggio, il file coinvolto e la riga indicata. Sono già una piccola mappa.

Puoi usarla anche per fare prove rapide:

document.querySelector("h1")
document.querySelector(".button-simple")?.textContent
localStorage.getItem("tema")

Queste prove non sostituiscono il codice del progetto, ma ti aiutano a capire se il selettore è giusto, se un elemento esiste o se un dato è davvero salvato.

Quando un errore sembra oscuro

Parti dal tipo di errore, non dalla paura che provoca.

ReferenceError
stai usando un nome che JavaScript non conosce in quel punto.
TypeError
stai facendo un'operazione su un valore del tipo sbagliato, spesso null o undefined.
SyntaxError
il codice non è scritto in una forma valida: parentesi, virgole, virgolette o struttura.

4. Network: richieste, asset e API

Schema del percorso di una richiesta dal browser al server e ritorno
Network mostra cosa viene richiesto, cosa risponde il server e quanto tempo serve.

Quando immagini, CSS, script o dati non arrivano, il pannello Network è spesso più utile della Console.

Qui puoi vedere ogni richiesta fatta dalla pagina: file statici, font, immagini, fetch verso API, risposte JSON, redirect e fallimenti.

I controlli più importanti sono pochi:

  • Status: 200 ok, 404 non trovato, 500 errore server, 403 accesso negato.
  • Type: ti dice se è document, script, stylesheet, image, fetch o altro.
  • Preview/Response: ti mostra cosa è arrivato davvero.
  • Headers: utile per URL, metodo, content type, cache e autorizzazioni.

Se una chiamata API "non funziona", prima controlla se parte davvero. Poi guarda URL, status code e risposta. Solo dopo ha senso tornare al codice.

5. Application: storage e cache

Alcuni problemi non stanno nel codice appena scritto, ma nello stato che il browser conserva.

Il pannello Application ti aiuta a controllare:

  • localStorage: dati che restano anche dopo aver chiuso il browser;
  • sessionStorage: dati validi per la sessione corrente;
  • cookie: spesso usati per preferenze, sessioni e tracciamento;
  • cache e service worker: possono servire file vecchi se configurati male.

Se una modifica sembra ignorata, prova a ricaricare senza cache o a controllare se un service worker sta ancora servendo una versione precedente.

6. Sources, Performance, Memory e Lighthouse

Questi pannelli sono molto utili, ma non sempre sono il primo posto da aprire. Conviene considerarli strumenti mirati, da usare quando la domanda è più precisa.

Sources
ti permette di vedere i file caricati dal browser, mettere breakpoint, fermare JavaScript e seguire il codice passo dopo passo.
Performance
serve quando una pagina sembra lenta: registra caricamento, rendering, script pesanti, layout e momenti in cui il thread principale è occupato.
Memory
diventa utile quando sospetti consumi anomali, leak o oggetti che restano in memoria anche dopo che non dovrebbero più servire.
Lighthouse
fa un audit rapido su performance, accessibilità, best practice e SEO. È una bussola, non una sentenza assoluta.

Per iniziare bene, la priorità resta capire Elements, Console e Network. Poi questi pannelli ti aiutano a fare un salto di qualità quando il problema non è più solo "non funziona", ma "perché è lento", "dove si blocca" o "cosa posso migliorare".

7. Routine minima di debug

Quando qualcosa non funziona, una routine semplice vale più di dieci tentativi casuali.

  1. Riproduci il problema con un passaggio preciso.
  2. Apri Console e controlla errori o warning.
  3. Se è un problema visivo, ispeziona l'elemento in Elements.
  4. Se mancano dati o asset, passa a Network.
  5. Se JavaScript si comporta in modo strano, usa Sources con un breakpoint.
  6. Se la pagina è lenta, guarda Performance o Lighthouse.
  7. Se il problema sembra "bloccato nel passato", controlla cache, storage e service worker.
  8. Fai una modifica piccola, verifica, poi passa alla successiva.

Questo metodo non rende i bug magicamente facili, ma ti impedisce di mischiare troppi problemi insieme.

Una checklist veloce

  • la pagina carica il CSS giusto?
  • il selettore JS trova davvero l'elemento?
  • la richiesta API parte e riceve una risposta?
  • l'URL dell'asset è corretto anche online?
  • un breakpoint in Sources conferma il flusso previsto?
  • Lighthouse segnala problemi reali o solo rifiniture?
  • la cache sta mostrando una versione vecchia?

8. Da qui in poi

Le DevTools diventano davvero utili quando smetti di vederle come un pannello tecnico e inizi a usarle come strumento di lettura.

Ogni volta che qualcosa non torna, il browser contiene già molti indizi: HTML reale, CSS calcolato, errori, richieste, tempi, dati salvati, file caricati e metriche.

Per consolidare il percorso, queste guide si incastrano bene: