Când se utilizează AJAX asincron sau sincron

AJAX, care înseamnă JavaScript și XML asincron, este o tehnică care permite actualizarea asincronă a paginilor web, ceea ce înseamnă că browserul nu trebuie să reîncarce întreaga pagină atunci când s-au schimbat doar un pic de date din pagină. AJAX transmite numai informațiile actualizate către și de pe server.

Aplicațiile web standard procesează interacțiunile dintre vizitatorii web și serverul în mod sincron. Aceasta înseamnă că un lucru se întâmplă după altul; serverul nu face multitask. Dacă faceți clic pe un buton, mesajul este trimis serverului, iar răspunsul este returnat. Nu puteți interacționa cu alte elemente de pagină până când răspunsul nu este primit și pagina este actualizată. 

Evident, acest tip de întârziere poate afecta negativ experiența unui vizitator web - prin urmare, AJAX.

Ce este AJAX?

AJAX nu este un limbaj de programare, ci o tehnică care încorporează un script din partea clientului (adică un script care rulează în browserul unui utilizator) care comunică cu un server web. Mai mult, numele său este oarecum înșelător: în timp ce o aplicație AJAX ar putea utiliza XML pentru a trimite date, ar putea folosi doar text simplu sau text JSON. Dar, în general, folosește un obiect XMLHttpRequest din browserul dvs. pentru a solicita date de la server și JavaScript pentru a afișa datele.

AJAX: Sincron sau Asincron

AJAX poate accesa serverul atât sincron cât și asincron:

  • sincronă, în care scriptul se oprește și așteaptă ca serverul să trimită un răspuns înainte de a continua.
  • asincronă, în care scriptul permite procesării paginii în continuare și gestionează răspunsul dacă și când ajunge.

Procesarea cererii dvs. sincronă este similar cu reîncărcarea paginii, dar numai informațiile solicitate sunt descărcate în locul întregii pagini. Prin urmare, utilizarea în mod sincronizat a AJAX este mai rapid decât să nu îl folosești deloc - dar totuși necesită vizitatorul tău să aștepte ca descărcarea să apară înainte de orice altă interacțiune cu pagina. Oamenii știu că uneori trebuie să aștepte să se încarce o pagină, dar majoritatea oamenilor nu sunt obișnuiți cu întârzieri semnificative după ce sunt pe un site. 

Procesarea cererii dvs. asincronă evită întârzierea în timp ce regăsirea de pe server are loc, deoarece vizitatorul dvs. poate continua să interacționeze cu pagina web; informațiile solicitate vor fi procesate în fundal, iar răspunsul va actualiza pagina ca și când va ajunge. În plus, chiar dacă un răspuns este întârziat - de exemplu, în cazul datelor foarte mari, vizitatorii site-ului ar putea să nu-și dea seama, deoarece sunt ocupați în altă parte a paginii.

Prin urmare, modalitatea preferată de a utiliza AJAX este de a utiliza apeluri asincrone, acolo unde este posibil. Aceasta este setarea implicită în AJAX. 

De ce să folosiți AJAX sincron?

Dacă apelurile asincrone oferă o experiență de utilizator îmbunătățită, de ce oferă AJAX o modalitate de a efectua apeluri sincrone?

Deși apelurile asincrone sunt cea mai bună alegere, marea majoritate a timpului, există situații rare în care nu are sens să le permiteți vizitatorului dvs. să continue interacțiunea cu pagina web până când un anumit proces din partea serverului se finalizează..

În multe dintre aceste cazuri, poate fi mai bine să nu folosiți deloc AJAX și să încărcați doar întreaga pagină. Opțiunea sincronă din AJAX există pentru numărul mic de situații în care nu puteți utiliza un apel asincron, dar reîncărcarea întregii pagini nu este necesară. De exemplu, este posibil să fie nevoie să gestionați unele prelucrări de tranzacții în care comanda este importantă. Luați în considerare un caz în care o pagină web trebuie să returneze o pagină de confirmare după ce utilizatorul a făcut clic pe ceva. Această sarcină necesită sincronizarea cererilor.