⊗jsSpAXFt 244 of 294 menu

Bazat e punës me fetch në AJAX

Le të shohim tani se si të ngarkojmë pjesë të një faqeje me ndihmën e AJAX. Le të supozojmë se në faqen tonë index.html do të ketë një div dhe një buton (këtu tregohet përmbajtja e body):

<div></div> <button>click me</button>

Le të supozojmë gjithashtu se kemi faqen ajax.html, ku janë vendosur tre paragrafë (pa etiketat e faqes, thjesht paragrafë):

<p>1</p> <p>2</p> <p>3</p>

Le të bëjmë që me klikim në buton në faqen index.html në div të ngarkohet përmbajtja e faqes ajax.html.

Për këtë, së pari le t'i marrim në variabla referencat për elementët tanë:

let div = document.querySelector('div'); let button = document.querySelector('button');

Le të vendosim në buton një përgjigjës të klikimit:

button.addEventListener('click', function() { // këtu do të kryejmë kërkesën AJAX });

Le të kryejmë tani kërkesën AJAX. Për këtë përdoret funksioni fetch, që merr si parametër adresën e faqes, përmbajtjen e së cilës duam të marrim. Le të tregojmë adresën e faqes ajax.html në serverin tonë:

button.addEventListener('click', function() { let result = fetch('/ajax.html'); });

Si rezultat, fetch do të kthejë një promise. Çështja është se kërkesa e një faqeje përmes AJAX - është një operacion asinkron, sepse do të kalojë një kohë, pas së cilës faqja do të na përgjigjet.

Le të marrim rezultatin e promise:

button.addEventListener('click', function() { let promise = fetch('/ajax.html'); promise.then(function(response) { // përgjigjja e serverit qëndron në variablin response }); });

Le të thjeshtësojmë, duke hequr variablin e tepërt:

button.addEventListener('click', function() { fetch('/ajax.html').then(function(response) { }); });

Le të thjeshtësojmë, duke përdorur funksionin shigjetor:

button.addEventListener('click', function() { fetch('/ajax.html').then(response => { }); });

Le ta paraqesim në një formë më të lexueshme:

button.addEventListener('click', function() { fetch('/ajax.html').then( response => { } ); });

Në variablin response përmban një objekt mjaft kompleks të klasës Response:

button.addEventListener('click', function() { fetch('/ajax.html').then(response => { console.log(response); // objekt i klasës Response }); });

Këtë objekt do ta studiojmë thellësisht në mësimet në vijim, por tani për tani na duhet gjëja më e thjeshtë - të marrim tekstin e faqes së kërkuar. Për këtë në këtë objekt ekziston metoda text. Kjo metodë, megjithatë, nuk kthen tekstin e faqes, por një promise me tekstin e saj:

button.addEventListener('click', function() { fetch('/ajax.html').then( response => { console.log(response.text()); // do të shfaqë Promise } ); });

Për të arritur tek teksti i faqes, është e nevojshme që promise, i marrë nga response.text, të përpunohet edhe një herë:

button.addEventListener('click', function() { fetch('/ajax.html').then( response => { return response.text(); } ).then( text => { console.log(text); // teksti i faqes } ); });

Pra, më në fund kemi marrë tekstin e faqes së kërkuar dhe mund, për shembull, ta shkruajmë atë në div-in tonë:

button.addEventListener('click', function() { fetch('/ajax.html').then( response => { return response.text(); } ).then( text => { div.innerHTML = text; } ); });

Janë dhënë tre butona dhe një div. Në server janë dhënë tre faqe. Bëni që secili prej butonave të ngarkojë në div faqen përkatëse.

Le të supozojmë se në server ka pesë faqe. Le të shtypja e parë në buton të ngarkojë faqen e parë, shtypja e dytë - të dytën, dhe kështu me radhë, derisa të mbarojnë faqet.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo