lezione 09

performance

debounce e gestione eventi.

livello: intermedio durata: 20 min output: ui fluida badge: javascript essentials

performance

const debounce = (fn, ms) => {
  let id;
  return (...args) => {
    clearTimeout(id);
    id = setTimeout(() => fn(...args), ms);
  };
};

eventi

button.addEventListener("click", () => console.log("tap"));

arrow functions

const greet = (name) => `ciao ${name}`;

async

async function load() { return await Promise.resolve("ok"); }

esercizi

aggiorna il dom in risposta a un click.

const el = document.querySelector("#app");
button.addEventListener("click", () => { el.textContent = "ok"; });

panoramica

In questo capitolo su performance lavoriamo su performance, eventi, arrow functions, async per creare micro-pattern riutilizzabili.

lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali.

badge: javascript essentials

obiettivi

  • capire e applicare performance in uno scenario reale
  • capire e applicare eventi in uno scenario reale
  • capire e applicare arrow functions in uno scenario reale
  • capire e applicare async in uno scenario reale

scheda rapida

const debounce = (fn, ms) => {
  let id;
  return (...args) => {
    clearTimeout(id);
    id = setTimeout(() => fn(...args), ms);
  };
};

adatta questo scheletro agli esempi della lezione.

tips

  • usa const di default
  • separa moduli piccoli
  • gestisci errori async
  • riduci mutazioni globali
  • profilare prima di ottimizzare
  • mantieni performance leggibile

tip: documenta ogni scelta architetturale.

mini progetto

aggiorna il dom al click.

  • seleziona elemento
  • aggiungi evento
  • aggiorna

output atteso: ui aggiornata.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief