Richieste sincrone e asincrone
Una richiesta sincrona blocca l’attività: è come aspettare al bancone finché il panino non è pronto. Una richiesta asincrona permette invece di continuare a fare altro mentre i dati arrivano. Nel web il browser chiede dati al server e la pagina non si blocca: l’utente può scorrere o cliccare mentre il download avviene in background.
AJAX e XMLHttpRequest
La prima tecnologia usata per le richieste asincrone è AJAX, Asynchronous JavaScript and XML. AJAX si basa sull’oggetto XMLHttpRequest. I passaggi tipici sono: creare l’oggetto, aprire la connessione, definire cosa fare all’arrivo dei dati e inviare la richiesta. Oggi AJAX puro si usa poco perché il codice è lungo, complesso e difficile da leggere.
Fetch API e Promises
La Fetch API è moderna, integrata nei browser e si basa sulle Promises: un “ti prometto che prima o poi ti darò il risultato” che non blocca il codice. Rispetto ad AJAX offre codice più corto e leggibile, gestione degli errori più chiara e supporto nativo a JSON, che oggi ha sostituito XML. Con Fetch si chiama fetch con l’URL, si usa then() per attendere la risposta, si converte in JSON e con un altro then() si usano i dati; catch() gestisce gli errori.
- Passaggi Fetch: chiamata, attesa, conversione JSON, uso dei dati.
- Errore di rete: intercettato con
catch().