⊗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šuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј