Synchrone en asynchrone communicatie



Inhoudsopgave

Inleiding

Wat is asynchone en synchrone communicatie

Wat is User experience

Voordelen van AJAX voor de userexperience





Inleiding

Om het effect aan te geven tussen synchrone en asynchrone communicatie voor de user experience zal ik eerst uitleggen wat het verschil is tussen synchrone communicatie en asynchrone communicatie. Daarna zal ik het begrip user experience nog eens nader toelichten en dan kijk ik wat het effect is van deze twee verschillende communicaties met de server op de user experience.

Wat is asynchone en synchrone communicatie

AJAX (Asynchronous Javascript And XML) is een term voor het ontwerp van interactieve webpagina's waarin asynchroon gevraagde gegevens worden opgehaald van de webserver. Daardoor hoeven dergelijke pagina's niet in hun geheel ververst te worden. Door gebruik te maken van XMLHttpRequest hoeft de webpagina niet opnieuw ververst te worden om nieuwe inhoud te krijgen.
Wanneer er synchrone communicatie plaatsvindt, wordt wanneer een gebruiker gegevens opvraagt vanaf de server de gehele pagina opnieuw geladen. Als de gebruiker bijvoorbeeld op een link klikt wordt er een http-request verstuurd naar de server. De server ontvangt de data, doet er wat mee, en verstuurd dan de opgevraagde HTML pagina weer terug naar de gebruiker. In de tussentijd moet de gebruiker wachten totdat de server klaar is met de request en de data heeft terug gestuurd. Vandaar ook dat er vaak (even) een wit scherm verschijnt als er op een link wordt geklikt. In figuur 1.0 is een goed weergeven wanneer en gebruik wordt gemaakt van de
XMLHttpRequest met AJAX. Wanneer dus gebruikt wordt gemaakt van een Ajax applicatie wordt er voor gezorgd dat de gebruiker niet hoeft te wachten totdat de gehele pagina weer opnieuw geladen hoeft te worden. Webpagina’s waarin standaard in de lay-out veel zware content is geladen hebben hier dan vooral profijt van. Gebruikers hoeven nu niet elke keer opnieuw deze content te laden wanneer er een nieuwe pagina wordt opgevraagd. De gebruiker krijgt nu geen witte pagina meer te zien wanneer er een pagina wordt opgevraagd via Ajax. In figuur 1.1 is te zien hoe een request synchroon verloopt en asynchroon.

asynchroon en synchroon
figuur 1.0
browser-client
figuur 1.1

Wat is User experience

User experience is het gevoel/beleving bij een applicatie, dat de gebruiker overhoud na het gebruik van de applicatie.
Het creëren van een unieke ervaring wordt door de klant als een toegevoegde waarde gezien bovenop een dienst of product. Voor deze toegevoegde waarde willen mensen vaak meer betalen. Ook wordt deze ervaring gebonden aan het imago van het bedrijf.
User experience kan men volgens Macromedia vergroten door een applicatie meer seamless (naadlozer), focused (gefocust), connected (verbonden) en aware (bewust) te maken.

Volgens Semantic Studios is de user experience te vergroten door een applicatie zo te maken dat hij voor de gebruiker useful (nuttig), usable (handig te gebruiken), desirable (wenselijk), findable (gemakkelijk te vinden), accessible (toegankelijk), credible (geloofwaardig) en valuable (waardevol) is.

Voordelen van AJAX voor de userexperience

Asynchone communicatie heeft het grote voordeel met zich mee dat de gehele pagina niet opnieuw geladen hoeft te worden, maar dat specifieke data wordt ververst binnen de pagina die de gebruiker opvraagd. Het effect hiervan is dat het de ‘usability’ en ‘seamless’ van een applicatie wordt vergroot.

Daarnaast vergroot het de usabilty doordat AJAX het web veel dynamischer kan maken. Bijvoorbeeld wanneer een gebruiker een formulier in vult waarbij van te voren bepaalde velden kunnen worden ingevoerd op basis van al eerder ingevulde velden. Daarbij denk ik bijvoorbeeld aan postcode en er wordt automatisch de plaats bij gezocht. Daarnaast kan er gevalideerd worden op specifieke velden zonder dat de gehele pagina opnieuw moet worden verzonden. Een ander goed voorbeeld waarbij de usabilty en seamless sterk wordt vergroot is Google maps.

Zo zijn er vele voorbeelden op te noemen waarbij asynchrone communicatie grote voordelen met zich meebrengt. Alleen moet de programmeur goed opletten wanneer en hoe deze communicatie wordt ingezet! Er zitten namelijk ook grote nadelen aan als het verkeerd wordt ingezet. Ik zal een paar voorbeelden noemen en in gaan hoe men hier rekening mee kan houden.

Wanneer delen van een webpagina worden vernieuwd kan de gebruiker dit niet altijd door hebben doordat ze niet zien wat er vernieuwd is. Webgebruikers zijn nog gewend aan dat de gehele pagina wordt vernieuwd.
Dit probleem kan worden opgelost door gebruik te maken van Yellow Fade Technique(YFT). Dat houd in dat de nieuwe content dat geladen wordt een gele achtergrond kleur krijgt. Deze kleur kan langzaam uit faden naar de normale kleur. Google maakt hier gebruik van door een loading… bovenin de hoek te plaatsen!

Een ander nadeel is dat een
XMLHttpRequest niet wordt opgenomen in de geschiedenis van de browser. Wanneer gebruikers op de back-knop klikken gebeurd er dus niks. Gebruikers moeten dus op de hoogte zijn dat XMLHttpRequest niet in de geschiedenis komen te staan.
Het adres wordt niet gewijzigd in de adres balk wanneer er een
XMLHttpRequest wordt verzonden.

Browser problemen voor oudere versies van browsers. Deze browsers werken nog niet met deze technieken en kunnen dus ook niet de gegevens ophalen via een
XMLHttpRequest. De oplossing hiervoor is om te kijken als er een XMLHttpRequest object kan worden gemaakt. Kan dit niet, dan wordt de request gewoon via de normale weg verzonden en wordt de gehele pagina wel opnieuw opgevraagd!