AJAX, wat staat voor asynchrone JavaScript en XML, is een techniek waarmee webpagina's asynchroon kunnen worden bijgewerkt, wat betekent dat de browser niet de hele pagina opnieuw hoeft te laden wanneer slechts een klein beetje gegevens op de pagina is gewijzigd. AJAX geeft alleen de bijgewerkte informatie door aan en van de server.
Standaard webapplicaties verwerken interacties tussen webbezoekers en de server synchroon. Dit betekent dat het ene na het andere gebeurt; de server doet geen multitasking. Als u op een knop klikt, wordt het bericht naar de server verzonden en wordt het antwoord geretourneerd. U kunt geen interactie aangaan met andere pagina-elementen totdat het antwoord is ontvangen en de pagina is bijgewerkt.
Het is duidelijk dat dit soort vertraging de ervaring van een webbezoeker negatief kan beïnvloeden - vandaar AJAX.
AJAX is geen programmeertaal, maar een techniek die een client-side script (d.w.z. een script dat in de browser van een gebruiker wordt uitgevoerd) bevat dat communiceert met een webserver. Verder is de naam enigszins misleidend: hoewel een AJAX-toepassing XML kan gebruiken om gegevens te verzenden, zou het ook gewone tekst of JSON-tekst kunnen gebruiken. Maar over het algemeen gebruikt het een XMLHttpRequest-object in uw browser om gegevens op te vragen van de server en JavaScript om de gegevens weer te geven.
AJAX heeft zowel synchroon als asynchroon toegang tot de server:
Uw verzoek wordt verwerkt synchroon lijkt op het opnieuw laden van de pagina, maar alleen de gevraagde informatie wordt gedownload in plaats van de hele pagina. Daarom is het synchroon gebruiken van AJAX sneller dan helemaal niet gebruiken - maar het vereist nog steeds dat uw bezoeker wacht tot de download plaatsvindt voordat verdere interactie met de pagina kan plaatsvinden. Mensen weten dat ze soms moeten wachten tot een pagina is geladen, maar de meeste mensen zijn niet gewend aan voortdurende, aanzienlijke vertragingen nadat ze op een site zijn.
Uw verzoek wordt verwerkt asynchroon vermijdt de vertraging terwijl het ophalen van de server plaatsvindt omdat uw bezoeker kan blijven communiceren met de webpagina; de gevraagde informatie wordt op de achtergrond verwerkt en het antwoord werkt de pagina bij zodra deze binnenkomt. Verder, zelfs als een reactie is vertraagd - bijvoorbeeld in het geval van zeer grote gegevens - realiseren sitebezoekers het misschien niet omdat ze elders op de pagina bezig zijn.
Daarom is de voorkeur om AJAX te gebruiken zoveel mogelijk asynchrone oproepen. Dit is de standaardinstelling in AJAX.
Als asynchrone gesprekken een dergelijke verbeterde gebruikerservaring bieden, waarom biedt AJAX dan een manier om überhaupt synchrone gesprekken te voeren?
Hoewel asynchrone oproepen het overgrote deel van de tijd de beste keuze zijn, zijn er zeldzame situaties waarin het geen zin heeft om uw bezoeker toe te staan om met de webpagina te blijven communiceren totdat een bepaald proces aan de serverzijde is voltooid.
In veel van deze gevallen is het misschien beter om AJAX helemaal niet te gebruiken en in plaats daarvan gewoon de hele pagina opnieuw te laden. De synchrone optie in AJAX is er voor het kleine aantal situaties waarin u geen asynchrone oproep kunt gebruiken, maar het opnieuw laden van de hele pagina is niet nodig. Het is bijvoorbeeld mogelijk dat u sommige transactieverwerking moet verwerken waarbij de bestelling belangrijk is. Overweeg een geval waarin een webpagina een bevestigingspagina moet retourneren nadat de gebruiker op iets heeft geklikt. Voor deze taak moeten de aanvragen worden gesynchroniseerd.