Het doel van Ajax

Ajax is een techniek gebaseerd op javascript dat het voor webpagina's mogelijk maakt om live nieuwe informatie in te laden terwijl de gebruiker of bezoeker op de pagina kan blijven zonder deze te hoeven verversen. De techniek is bedoelt voor dynamische content dat elk moment kan veranderen. Denk bijvoorbeeld aan meerdere gebruikers die in de backend van een Wordpress site aan het werk zijn. Als er op een specifiek moment aanpassingen worden gedaan door een gebruiker, zorgt de Ajax techniek ervoor dat deze wijzigingen zo snel mogelijk zichtbaar zijn voor de andere gebruikers. Hierdoor wordt informatie sneller gedeeld en voorkom je onder andere dat werk dubbelop wordt uitgevoerd. Dit maakt Ajax in pricipe een zeer fijne techniek. Het probleem zit hem vaak in foutieve implementaties van de Ajax techniek in WordPress plugins, dat enorms negatief kan uitpakken voor de performance van je site. 


De Ajax techniek zien we bij WordPress plugins terug als admin-ajax.php calls. Bij elke admin-ajax call wordt een pagina in de achtergrond voor ongeveer 80% opnieuw geladen. Bij een admin-ajax call per 15 seconden is dit zeer goed te doen door de server, maar in sommige gevallen zien we zelfs 10 ajax calls per seconde per gebruiker. Als je dan met meerdere gebruikers in de backend van je Wordpress aan het werken bent, kan dat weleens teveel van het goede zijn.


Hoe werkt het bij WordPress?

Een plugin ontwikkelaar verbind een link, knop of een ander interactief element op een pagina aan een javascript geschreven programma. Als je de muis over een element beweegt of op zo'n interactief element klikt, dan stuurt het javascript programma een verzoek of informatie naar de webserver. Het bijbehorende programma op de webserver stuurt als respons wat data terug dat vaak in XML format is geschreven. Op het moment dat deze data aankomt bij de browser dan krijgt het javascript programma een melding dat de huidige informatie op de pagina niet synchroon loopt en wordt de informatie verwerkt zodat dit correct kan worden weergegeven. Voor ontwikkelaars extra informatie over het gebruik en toepassen van ajax https://codex.wordpPress.org/AJAX_in_Plugins


Heb ik last van admin-ajax.php?

De snelste manier om te controleren of te maken hebt met veel admin-ajax.php calls is door de Developer Tools (F12) te openen op de 'Network' tab. Zie afbeelding. 

De tweede stap is te kijken of je performance wordt lastig gevallen door admin-ajax calls. Hiervoor is de performance test op webpagetest.org een handige tool. 

Verder kun je no in de access logs kijken hoeveel admin-ajax.php calls je per seconde uitvoert. Hou daarbij in gedachten dat per call je site voor 80% opnieuw wordt geladen.


Admin-ajax calls wegwerken dmv staging omgeving

Het is daarom vaak wel verstanding om deze calls te beperken. Om vast te stellen of je site sneller gaat werken zou je gebruik kunnen maken van een staging omgeving. Dit maakt een kopie van je huidige site en stelt je in staat om verschillende instellingen te testen. Het is hier dan ook mogelijk om plugins aan en uit te zetten om te zien welke van de plugins deze calls uiteindelijk uitvoert. Omdat je niet bezig bent met het aanpassen van je live site is een staging hier een goede oplossing voor. Je kan een staging aanmaken voor al onze pakketten dmv het admin panel die je vindt op admin.savvii.com.