AJAX, som står for asynkron Javascript og XML, er en teknikk som gjør at websider kan oppdateres asynkront, noe som betyr at nettleseren ikke trenger å laste inn hele siden når bare en liten bit data på siden har endret seg. AJAX overfører bare den oppdaterte informasjonen til og fra serveren.
Standard webapplikasjoner behandler samhandling mellom nettbesøkende og serveren synkront. Dette betyr at en ting skjer etter den andre; serveren multitasker ikke. Hvis du klikker på en knapp, blir meldingen sendt til serveren, og svaret blir returnert. Du kan ikke samhandle med andre sideelementer før svaret er mottatt og siden er oppdatert.
Det er klart at denne typen forsinkelser kan ha negativ innvirkning på opplevelsen av en nettbesøkende - derav AJAX.
Hva er AJAX?
AJAX er ikke et programmeringsspråk, men en teknikk som inneholder et skript på klientsiden (dvs. et skript som kjører i en brukers nettleser) som kommuniserer med en webserver. Videre er navnet noe misvisende: mens en AJAX-applikasjon kan bruke XML til å sende data, kan den også bruke bare ren tekst eller JSON-tekst. Men generelt bruker den et XMLHttpRequest-objekt i nettleseren for å be om data fra serveren og JavaScript for å vise dataene.
AJAX: Synkron eller Asynkron
AJAX har tilgang til serveren både synkront og asynkront:
- synkront, der skriptet stopper og venter på at serveren sender tilbake et svar før du fortsetter.
- asynkront, der skriptet lar siden fortsette å behandles og håndterer svaret hvis og når den kommer.
Behandler forespørselen din synkront ligner på å laste siden på nytt, men bare den forespurte informasjonen lastes ned i stedet for hele siden. Derfor er det raskere å bruke AJAX synkront enn å ikke bruke det i det hele tatt - men det krever fortsatt at besøkende venter på at nedlastingen skal skje før ytterligere interaksjon med siden kan fortsette. Folk vet at de noen ganger trenger å vente på at en side skal lastes, men de fleste er ikke vant til å fortsette, betydelige forsinkelser etter at de er på et nettsted.
Behandler forespørselen din asynkront unngår forsinkelsen mens hentingen fra serveren finner sted fordi den besøkende kan fortsette å samhandle med websiden; den forespurte informasjonen vil bli behandlet i bakgrunnen, og svaret vil oppdatere siden når den kommer. Selv om et svar er forsinket - for eksempel for veldig store data - vil besøkende kanskje ikke innse det fordi de er okkupert andre steder på siden.
Derfor er den foretrukne måten å bruke AJAX på å bruke asynkrone samtaler der det er mulig. Dette er standardinnstillingen i AJAX.
Hvorfor bruke synkron AJAX?
Hvis asynkrone samtaler gir en slik forbedret brukeropplevelse, hvorfor tilbyr AJAX en måte å ringe synkrone samtaler på i det hele tatt?
Mens asynkrone samtaler er det beste valget det store flertallet av tiden, er det sjeldne situasjoner der det ikke gjør det være fornuftig for å la den besøkende fortsette å samhandle med websiden til en bestemt serverside-prosess fullført.
I mange av disse tilfellene kan det være bedre å ikke bruke AJAX i det hele tatt, og i stedet bare laste inn hele siden. Det synkrone alternativet i AJAX er der for et lite antall situasjoner der du ikke kan bruke en asynkron samtale, men å laste inn hele siden er unødvendig. For eksempel kan det hende du må håndtere noen transaksjonsbehandling der ordren er viktig. Vurder en sak der en webside trenger å returnere en bekreftelsesside etter at brukeren har klikket på noe. Denne oppgaven krever synkronisering av forespørslene.