När ska man använda Asynchronous eller Synchronous AJAX

AJAX, som står för asynkron JavaScript och XML, är en teknik som gör att webbsidor kan uppdateras asynkront, vilket innebär att webbläsaren inte behöver ladda hela sidan när bara en liten bit data på sidan har ändrats. AJAX skickar endast den uppdaterade informationen till och från servern.

Standard webbapplikationer behandlar interaktioner mellan webbbesökare och servern synkront. Detta betyder att en sak händer efter den andra; servern inte multitask. Om du klickar på en knapp skickas meddelandet till servern och svaret returneras. Du kan inte interagera med andra sidelement förrän svaret har tagits emot och sidan har uppdaterats. 

Uppenbarligen kan denna typ av försening påverka en webbesökares upplevelse negativt - därmed AJAX.

Vad är AJAX?

AJAX är inte ett programmeringsspråk, utan en teknik som innehåller ett skript på klientsidan (dvs. ett skript som körs i en användares webbläsare) som kommunicerar med en webbserver. Dessutom är namnet något vilseledande: medan en AJAX-applikation kan använda XML för att skicka data, kan den också använda bara vanlig text eller JSON-text. Men i allmänhet använder det ett XMLHttpRequest-objekt i din webbläsare för att begära data från servern och JavaScript för att visa data.

AJAX: Synkron eller Asynkron

AJAX kan komma åt servern både synkront och asynkront:

  • synkront, där skriptet stannar och väntar på att servern ska skicka tillbaka ett svar innan du fortsätter.
  • asynkront, där skriptet tillåter att sidan fortsätter att bearbetas och hanterar svaret om och när den anländer.

Behandlar din begäran synkront liknar att ladda om sidan, men bara den begärda informationen laddas ner istället för hela sidan. Därför är det snabbare att använda AJAX än att inte använda det alls - men det kräver fortfarande att din besökare väntar på att nedladdningen ska ske innan ytterligare interaktion med sidan kan fortsätta. Folk vet att de ibland måste vänta på att en sida laddas, men de flesta är inte vana vid fortsatta, betydande förseningar efter att de är på en webbplats. 

Behandlar din begäran asynkront undviker förseningen medan hämtningen från servern sker eftersom din besökare kan fortsätta interagera med webbsidan; den begärda informationen kommer att behandlas i bakgrunden och svaret kommer att uppdatera sidan när den kommer. Även om ett svar är försenat - till exempel för mycket stora data - kanske besökare inte inser det eftersom de är upptagna någon annanstans på sidan.

Därför är det föredragna sättet att använda AJAX att använda asynkrona samtal där så är möjligt. Detta är standardinställningen i AJAX. 

Varför använda synkron AJAX?

Om asynkronsamtal ger en så förbättrad användarupplevelse, varför erbjuder AJAX ett sätt att ringa synkrona samtal alls?

Medan asynkrona samtal är det bästa valet den stora majoriteten av tiden, finns det sällsynta situationer där det inte är vettigt att låta din besökare fortsätta interagera med webbsidan tills en viss server-sida-process slutförts.

I många av dessa fall kan det vara bättre att inte använda AJAX alls och istället bara ladda om hela sidan. Det synkrona alternativet i AJAX finns för det lilla antalet situationer där du inte kan använda ett asynkront samtal men att ladda hela sidan är onödigt. Du kan till exempel behöva hantera någon transaktionsbehandling där ordningen är viktig. Överväg ett fall där en webbsida behöver returnera en bekräftelsessida efter att användaren klickat på något. Denna uppgift kräver synkronisering av förfrågningarna.