Synchrone en asynchrone
communicatie
Inhoudsopgave
Wat is asynchone en synchrone communicatie
Voordelen van AJAX voor de userexperience
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.

figuur 1.0

figuur 1.1
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!
