⊗jsSpAsnIL 153 of 294 menu

Асинхроно учитавање слика у JavaScript-у

Слике које се динамички креирају преко JavaScript-а, такође се учитавају асинхроно. Размотримо на пример следећи код:

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

Као што видите, овде креирамо таг img, уписујемо у његов src пут до слике и смештамо ову слику у body. Слика, међутим, неће се одмах појавити на страни. Ствар је у томе да када смо уписали у src пут до слике - прегледач почиње да преузима ту слику са сајта. Чим се слика преузме, тек тада прегледач може да је прикаже.

Ако је слика довољно велика, а брзина интернета довољно мала, тада корисник сајта неко време може да се "надиви" прасној слици - док се не учита.

Заправо, таг img има догађај load, који се активира при завршетку учитавања слике:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { // активира се по учитавању слике });

Ово можемо искористити да сместимо слику на страну, само када се та слика учита:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); // смештамо по учитавању });

Слика не мора нужно да се учита: може да се деси да је пут до слике погрешен, или дође до прекида интернета, квара сервера са сајтом или нешто слично. Другим речима - изузетна ситуација. У том случају се неће активирати догађај load, већ догађај error:

let image = document.createElement('img'); image.src = 'img.png'; image.addEventListener('load', function() { document.body.appendChild(image); }); image.addEventListener('error', function() { // грешка при учитавању слике });

Направите дугме, при клику на које ће се учитати слика. Прикажите слику када се учита. Прикажите поруку у случају проблема са учитавањем слике.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј