⊗jsSpAsnIL 153 of 294 menu

Asinhrono nalaganje slik v JavaScript

Slike, ki so dinamično ustvarjene prek JavaScript, se prav tako naložijo asinhrono. Razmislimo na primeru naslednje kode:

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

Kot vidite, tukaj ustvarimo oznako img, zapišemo v njen src pot do slike in postavimo to sliko v body. Slika pa se na strani ne bo pojavila takoj. Bistvo je, da ko zapišemo v src pot do slike - brskalnik začne prenašati to sliko s spletnega mesta. Šele ko bo slika prenešena, jo bo brskalnik lahko prikazal.

Če je slika dovolj velika, hitrost interneta pa dovolj majhna, bo uporabnik spletnega mesta nekaj časa lahko "občudoval" prazno sliko - dokler se ne naloži.

Pravzaprav ima oznaka img dogodek load, ki se sproži ob koncu nalaganja slike:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { // se sproži ob nalaganju slike });

To lahko uporabimo, da sliko postavimo na stran šele, ko bo ta slika naložena:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); // postavimo ob nalaganju });

Slika se ne naloži nujno: lahko se zgodi, da je pot do slike napačna, ali pa pride do prekinitve interneta, okvare strežnika s spletnim mestom ali kaj podobnega. Z drugimi besedami - izjemna situacija. V tem primeru se ne bo sprožil dogodek load, ampak dogodek error:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); }); image.addEventListener('error', function() { // napaka pri nalaganju slike });

Naredite gumb, ob kliku na katerega se bo naložila slika. Prikažite sliko, ko bo naložena. Izpišite sporočilo v primeru težav z nalaganjem slike.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni