⊗jsSpAXFt 244 of 294 menu

AJAX-ում fetch-ի հետ աշխատանքի հիմունքներ

Հիմա եկեք նայենք, թե ինչպես կարելի է էջի մի մասը բեռնել օգտագործելով AJAX: Ենթադրենք, որ մեր index.html էջի վրա տեղադրված է div և կոճակ (այստեղ ցուցադրված է body-ի պարունակությունը):

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

Ենթադրենք, որ մենք ունենք նաև ajax.html էջ, որի վրա տեղադրված են երեք պարբերություն (առանց էջի թեգերի, պարզապես պարբերություններ):

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

Եկեք անենք, որ index.html էջի կոճակի վրա կտտացնելիս div-ի մեջ բեռնվի ajax.html էջի պարունակությունը:

Դրա համար նախ ստացենք մեր էլեմենտների հղումները փոփոխականների մեջ:

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

Եկեք կոճակի վրա ավելացնենք կտտոցի մշակիչ:

button.addEventListener('click', function() { // այստեղ կկատարենք AJAX հարցում });

Եկեք հիմա կատարենք AJAX հարցում: Դրա համար օգտագործվում է fetch ֆունկցիան, որը պարամետրով ստանում է այն էջի հասցեն, որի պարունակությունը մենք ցանկանում ենք ստանալ: Նշենք մեր սերվերում գտնվող ajax.html էջի հասցեն:

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

fetch-ն իր արդյունքում կվերադարձնի պրոմիս: Բանն այն է, որ էջի հարցումը AJAX-ի միջոցով ասինխրոն գործողություն է, քանի որ որոշ ժամանակ կանցնի, որից հետո էջը մեզ կպատասխանի:

Եկեք ստացենք պրոմիսի արդյունքը:

button.addEventListener('click', function() { let promise = fetch('/ajax.html'); promise.then(function(response) { // սերվերի պատասխանը գտնվում է response փոփոխականում }); });

Պարզեցնենք՝ ազատվելով ավելորդ փոփոխականից:

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

Պարզեցնենք՝ օգտագործելով սլաքային ֆունկցիա:

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

Ներկայացնենք ավելի ընթեռնելի տեսքով:

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

response փոփոխականում պարունակվում է բավականին բարդ օբյեկտ՝ Response դասի:

button.addEventListener('click', function() { fetch('/ajax.html').then(response => { console.log(response); // Response դասի օբյեկտ }); });

Այս օբյեկտը խորը կուսումնասիրենք հաջորդ դասերում, իսկ առայժմ մեզ անհրաժեշտ է ամենապարզը՝ ստանալ հարցված էջի տեքստը: Դրա համար այս օբյեկտում գոյություն ունի text մեթոդը: Սակայն այս մեթոդը վերադարձնում է ոչ թե էջի տեքստը, այլ դրա տեքստով պրոմիս:

button.addEventListener('click', function() { fetch('/ajax.html').then( response => { console.log(response.text()); // կցուցադրի Promise } ); });

Էջի տեքստին հասնելու համար անհրաժեշտ է response.text-ից ստացված պրոմիսը ևս մեկ անգամ մշակել:

button.addEventListener('click', function() { fetch('/ajax.html').then( response => { return response.text(); } ).then( text => { console.log(text); // էջի տեքստը } ); });

Այսպիսով, մենք վերջապես ստացանք հարցված էջի տեքստը և կարող ենք, օրինակ, գրել այն մեր div-ի մեջ:

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

Տրված են երեք կոճակ և div: Սերվերում տրված են երեք էջ: Ապահովեք, որ կոճակներից յուրաքանչյուրը div-ի մեջ բեռնի համապատասխան էջը:

Ենթադրենք, որ սերվերում կա հինգ էջ: Թող կոճակի վրա առաջին կտտոցը բեռնի առաջին էջը, երկրորդ կտտոցը՝ երկրորդը, և այդպես շարունակ, մինչև էջերը չվերջանան:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել