⊗jsSpAsnIL 153 of 294 menu

Caricamento asincrono di immagini in JavaScript

Le immagini che vengono create dinamicamente tramite JavaScript vengono anche caricate in modo asincrono. Consideriamo il seguente codice come esempio:

let image = document.createElement('img'); image.src = 'img.png'; document.body.appendChild(image);

Come puoi vedere, qui creiamo un tag img, impostiamo nel suo src il percorso dell'immagine e posizioniamo questa immagine nel body. Tuttavia, l'immagine non apparirà immediatamente sulla pagina. Il fatto è che quando impostiamo in src il percorso dell'immagine, il browser inizia a scaricare questa immagine dal sito. Solo quando l'immagine sarà scaricata, il browser potrà mostrarla.

Se l'immagine è abbastanza grande e la velocità di internet è abbastanza lenta, l'utente del sito potrà "ammirare" per un po' un'immagine vuota - finché non viene caricata.

In realtà, il tag img possiede un evento load, che si attiva al termine del caricamento dell'immagine:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { // si attiva al caricamento dell'immagine });

Possiamo usarlo per posizionare l'immagine sulla pagina solo quando questa immagine sarà caricata:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); // posizioniamo al caricamento });

L'immagine potrebbe non caricarsi: potrebbe accadere che il percorso dell'immagine sia errato, o che ci sia un'interruzione di internet, un guasto al server del sito o qualcosa di simile. In altre parole - una situazione eccezionale. In questo caso, non si attiverà l'evento load, ma l'evento error:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); }); image.addEventListener('error', function() { // errore di caricamento dell'immagine });

Crea un pulsante che, al click, carichi un'immagine. Mostra l'immagine quando sarà caricata. Visualizza un messaggio in caso di problemi con il caricamento dell'immagine.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta