⊗jsSpAsnIL 153 of 294 menu

Asynkron bildeopplasting i JavaScript

Bilder som opprettes dynamisk via JavaScript, lastes også opp asynkront. La oss se på følgende kode som et eksempel:

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

Som du ser, oppretter vi her en img-tag, setter banen til bildet i dens src og plasserer dette bildet i body. Bildet vil imidlertid ikke vises på siden umiddelbart. Saken er at når vi setter banen til bildet i src - begynner nettleseren å laste ned dette bildet fra nettstedet. Først når bildet er lastet ned, kan nettleseren vise det.

Hvis bildet er stort nok, og hastigheten på internett er lav nok, kan brukeren av nettstedet en stund "beundre" et tomt bilde - inntil det er lastet inn.

Faktisk har img-taggen en hendelse load som utløses ved slutten av bildeopplastingen:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { // utløses når bildet er lastet });

Vi kan bruke dette til å plassere bildet på siden først når dette bildet er lastet:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); // plasserer etter lasting });

Bildet blir ikke nødvendigvis lastet: det kan være slik at banen til bildet er feil, eller det oppstår brudd i internett, feil på serveren med nettstedet eller noe lignende. Med andre ord - en unntakssituasjon. I dette tilfellet vil ikke hendelsen load utløses, men hendelsen error:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); }); image.addEventListener('error', function() { // feil ved bildeopplasting });

Lag en knapp som, når den trykkes på, vil laste et bilde. Vis bildet når det er lastet. Vis en melding i tilfelle problemer med bildeopplasting.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis