23 oktober 2026Onze visuele editor. Niet harder werken, maar slimmer.
Bij performance denken we al snel aan websites die sneller laden. Maar snelheid is minstens zo belangrijk voor de mensen die dagelijks aan een website werken. Voor deze release zijn we daarom onder de motorkap van TwelveBricks gedoken. We hebben goed gekeken naar hoe we belangrijke functionaliteit slimmer kunnen laten werken!
Alleen opnieuw opbouwen wat is gewijzigd
Wanneer je iets aanpast in onze visuele editor, moeten die wijzigingen worden opgeslagen en verwerkt. Tot voor kort werd daarbij de volledige editor opnieuw opgebouwd en naar de browser gestuurd. Ook de onderdelen die helemaal niet waren gewijzigd.Vooral bij lange re pagina's met veel componenten levert dat onnodig veel werk op.
Daarom hebben we de manier waarop Drupal onze editor opnieuw opbouwt aangepast. In plaats van alles opnieuw te verwerken, kijken we nu gericht naar wat er is gewijzigd. Vervolgens bouwen we alleen de benodigde componenten en rijen opnieuw op en sturen we die terug naar de browser.
De bestaande editor blijft dus gewoon werken zoals je gewend bent, maar achter de schermen gebeurt een stuk minder.
Configuratie niet steeds opnieuw verwerken
Een belangrijk deel van onze componenten en thema-instellingen is vastgelegd in YAML-bestanden. Dat zijn configuratiebestanden waarin we bijvoorbeeld definiëren welke eigenschappen een component heeft en hoe deze kan worden weergegeven. Die informatie wordt op veel plekken gebruikt. Daardoor werden bepaalde handelingen, zoals het uitlezen en verwerken van configuratiebestanden, vaker uitgevoerd dan nodig.
We hebben daarom een aparte cache ingericht. Daarin bewaren we onder andere componentdefinities, instellingen van contenttypes en themaspecifieke kleuren en andere eigenschappen. Omdat deze configuratie doorgaans alleen verandert wanneer we een nieuwe release uitrollen, kunnen we de resultaten lange tijd hergebruiken.
Dat scheelt het herhaaldelijk uitlezen van YAML-bestanden en het opnieuw samenstellen van instellingen. Kleine optimalisaties die, doordat ze op zoveel plekken worden gebruikt, behoorlijk kunnen optellen.
Minder onnodige controles bij afbeeldingen
Ook bij het verwerken van afbeeldingen bleek winst te behalen. Om een afbeelding goed weer te geven, moeten we soms aanvullende eigenschappen bepalen. Heeft de afbeelding een transparante achtergrond? Waar ligt het focuspunt? En welke afmetingen heeft het bestand?
Voor sommige controles moet het afbeeldingsbestand daadwerkelijk worden geopend en geanalyseerd. Dat kost verwerkingstijd, terwijl het antwoord meestal niet verandert.
Daarom hebben we ook hiervoor caching toegevoegd. Zo hoeven we bijvoorbeeld niet steeds opnieuw te controleren of een afbeelding transparantie bevat. Ook berekende informatie over focuspunten kunnen we nu hergebruiken.
Het resultaat? Minder bestandsbewerkingen en minder onnodig rekenwerk bij het opbouwen van pagina's.
Slimmer cachen met ons nieuwe CDN
Naast de editor hebben we ook gekeken naar de manier waarop pagina's aan bezoekers worden geleverd. Daarbij speelt caching een belangrijke rol. Door een eerder opgebouwde pagina tijdelijk op te slaan, hoeft Drupal deze niet bij ieder bezoek opnieuw te genereren.
We hebben de gedeelde HTTP-cacheduur (s-maxage) verhoogd van 15 minuten naar 2 uur. Daarmee kunnen pagina's langer vanuit de cache worden aangeboden.
Dat klinkt eenvoudig, maar er zit een belangrijk aandachtspunt aan. Als je pagina's langer bewaart, wil je natuurlijk niet dat bezoekers verouderde informatie te zien krijgen. Daarom gaat deze aanpassing hand in hand met ons nieuwe Europese Content Delivery Network (CDN). We hebben de koppeling met Drupal zo ingericht dat we heel gericht kunnen aangeven welke pagina's en onderdelen moeten worden ververst wanneer er content verandert.
Zo combineren we een langere cacheduur met de mogelijkheid om wijzigingen snel zichtbaar te maken. In de toekomst hopen we deze tijd nog efficiënter in te kunnen stellen.
Ook de technische basis blijft in beweging
Tot slot hebben we onze applicatie- en ontwikkelomgeving bijgewerkt naar PHP 8.4. PHP is de programmeertaal waarop Drupal en daarmee TwelveBricks draaien. Nieuwe PHP-versies brengen verbeteringen in de uitvoering van code, het geheugengebruik en de technische mogelijkheden.
Door ons platform actueel te houden, kunnen we profiteren van deze verbeteringen en blijven we werken op een moderne, ondersteunde technische basis.
Wat levert dit allemaal op?
De verbeteringen in deze release hebben één ding gemeen. We proberen werk te voorkomen dat eigenlijk niet nodig is.
Hoeveel sneller een specifieke pagina of handeling hierdoor wordt, verschilt per situatie. Dat hangt onder andere af van het aantal componenten, de complexiteit van de pagina en welke gegevens al in de cache aanwezig zijn. We noemen daarom bewust geen algemeen percentage. Wat we willen laten zien, is waar we onnodige verwerking hebben weggehaald en waarom dat verschil maakt. De eerste metingen laten in ieder geval veelbelovende resultaten zien:
⚡ 82% minder tijd nodig voor dezelfde taak.
📉 18% minder geheugen nodig.
Ons uitgangspunt blijft hetzelfde. Een website moet niet alleen snel zijn voor bezoekers, maar ook prettig en efficiënt werken voor de mensen die hem dagelijks beheren.
-

Sean Blommaert