Haal de beste performance uit JavaScript-applicaties

Binnen het totale applicatielandschap wordt het aandeel van webapplicaties steeds groter. Omdat Esri’s ontwikkelingen verre van stilstaan, vertel ik in dit blog de best practices voor het optimaliseren van de performance van je JavaScript-applicaties.

Gebruik clustering om de performance van je JavaScript-applicatie te verbeteren

Performance afwegingen

  1. Wanneer we kijken naar de performance, zijn er een aantal zaken om over na te denken voordat je een webapplicatie ontwikkelt, zeker als je daar een kaart in gebruikt.
    Ken je publiek – zijn het gespecialiseerde gebruikers die de informatie op de kaart nodig hebben en daarom de kaart de tijd geven om te laden of is het een publieke app waarbij de gebruikers snel afhaken?
  2. Op welke apparaten wordt de applicatie gebruikt – er zijn grote hardware verschillen tussen desktops en mobiele apparaten. Ook het netwerk kan een grote invloed hebben op de performance van je applicatie, zeker wanneer je gebruik maakt van webservices.
  3. Generaliseren en datapreparatie – zorg dat de data op orde is voordat het gebruikt wordt in een applicatie, zodat de gebruikers niet onnodig lang hoeven te wachten op het laden van overbodige kolommen of te gedetailleerde features.
  4. Welke versie van de ArcGIS API for JavaScript gebruik je

Client en server samenwerking
Een webapplicatie krijgt zijn data van de server, wat maakt dat de samenwerking tussen de client en de server ontzettend belangrijk is. De server handelt de requests van de client zo optimaal mogelijk af en brengt de data zo snel mogelijk terug naar de client. De client moet die data ook zo snel mogelijk kunnen verwerken.

ArcGIS heeft de laatste jaren steeds meer mogelijkheden gekregen om deze samenwerking zo optimaal mogelijk te benutten. Een voorbeeld hiervan is dat de server tegenwoordig data naar de client stuurt in Protocol Buffer Format. Dit zogenaamde PBF-formaat is een binair formaat dat de client rechtstreeks op de kaart kan tekenen.

Mapservices versus feature services
Maar er zijn nog een aantal manieren waarmee je de samenwerking tussen de client en de server zo goed mogelijk kunt optimaliseren. Eén van de belangrijkste is de keuze welk type service je gebruikt. ArcGIS Server heeft van oudsher een mapservice, en later is daar een feature service bij gekomen. Er zijn grote verschillen tussen deze twee types services en dat zit hem voornamelijk in waar het “meeste werk” wordt uitgevoerd.

Bij een mapservice wordt door de client een request gedaan aan de server. Deze verwerkt de request en maakt een kaart voor de client en stuurt deze terug. Bij een feature service werkt dat anders. Daar doet de client ook een request aan de server, maar in plaats van een kaart geeft de server nu de ruwe data terug. Vervolgens moet de client met die data aan de slag om daar een kaart van te maken. Vaak is de hoeveelheid data die naar de client gestuurd wordt om dezelfde kaart op de client te tonen bij een mapservice aanzienlijk minder dan bij een feature service. Bij het gebruik van een feature service is de data, omdat het naast de kaart ook om de ruwe data gaat, beschikbaar op de client waardoor je er meer mee kunt doen. Vaak doet de client meerdere requests om alle data op te halen. De ene keer is het beter om een mapservice te gebruiken, en de andere keer een feature service.

Service die past bij het gebruik
Welk techniek je kiest hangt dus voornamelijk af van het beoogde gebruik. Wordt de kaart intensief gebruikt waarbij er veel data naar de client gestuurd wordt, bijvoorbeeld door veelvuldig pannen en zoomen, dan ligt de keuze voor een mapservice voor de hand. Vindt er echter op de client veel interactie plaats, bijvoorbeeld het filteren van data of wisselende visualisaties, dan heb je ook de data nodig en zal je voorkeur uitgaan naar een feature service.

Bekijk de verschillen tussen mapservices en feature services in deze demo: Open hier in de data vanuit de mapservice en feature service en ervaar het verschil in laadtijd. https://esrinederland.github.io/WebinarJSPerformance/Demos/MSvsFS.html

Zelf met performance aan de slag
Wat kun je aan de hand van dit blog nu zelf doen? Bekijk je applicaties en kijk hoe je deze op basis van bovenstaande tips nog sneller kunt maken. Heb je daarover nog vragen, of wil je een keer sparren over andere ArcGIS Developer onderwerpen, stuur gerust een email naar developers@esri.nl. We denken graag met je mee!

Volgend Artikel

ArcGIS voor op School-licentie verlengd tot 2025

Lees dit artikel