---
url: 'https://dxpr.com/nl/hc/documentation/learn-dxpr-builder/advanced/caching'
title: 'Caching | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T02:32:09+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  Een DXPR Builder-pagina is een Drupal-veldrender array met eigen
  cachemetadata, plus een handvol interne caches die de module bijhoudt
  voor de editor en de licentiecontrole. Deze pagina somt op wat de code
  cacht, welke tags en contexten die gebruikt, wat ze invalideert en
  wat je na een update met de hand wist.
  Het builderveld
  De DXPR Builder-veldformatter zet deze cachemetadata op
  elk builderveld:
tags:
  - 'Naar productie'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: Caching
      description: |-
        Een DXPR Builder-pagina is een Drupal-veldrender array met eigen
        cachemetadata, plus een handvol interne caches die de module bijhoudt
        voor de editor en de licentiecontrole. Deze pagina somt op wat de code
        cacht, welke tags en contexten die gebruikt, wat ze invalideert en
        wat je na een update met de hand wist.
        Het builderveld
        De DXPR Builder-veldformatter zet deze cachemetadata op
        elk builderveld:
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T02:32:09+0000'
      dateModified: '2026-10-24T09:09:48+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/nl/hc/documentation/learn-dxpr-builder/advanced/caching'
      articleSection: 'Naar productie'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/nl/hc/documentation/learn-dxpr-builder/advanced/caching'
      description: |-
        Een DXPR Builder-pagina is een Drupal-veldrender array met eigen
        cachemetadata, plus een handvol interne caches die de module bijhoudt
        voor de editor en de licentiecontrole. Deze pagina somt op wat de code
        cacht, welke tags en contexten die gebruikt, wat ze invalideert en
        wat je na een update met de hand wist.
        Het builderveld
        De DXPR Builder-veldformatter zet deze cachemetadata op
        elk builderveld:
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/nl'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: nl
---
[Help Center](/nl/hc)/[Documentatie](/nl/hc/documentatie) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Manage the site](/hc/documentation/learn-dxpr-builder/manage) /[Naar productie](/hc/documentation/learn-dxpr-builder/manage/production) # Caching.

 Learn DXPR BuilderManage the siteNaar productie

   ## In this guide

 Related guides

- [Prestaties](/nl/hc/documentation/learn-dxpr-builder/advanced/performance)
- [DXPR Builder themen](/nl/hc/documentation/learn-dxpr-builder/development/architecture)
- [Bezoekers zien iets anders](/nl/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else)

Een DXPR Builder-pagina is een Drupal-veldrender array met eigen cachemetadata, plus een handvol interne caches die de module bijhoudt voor de editor en de licentiecontrole. Deze pagina somt op wat de code cacht, welke tags en contexten die gebruikt, wat ze invalideert en wat je na een update met de hand wist.

## Het builderveld

De **DXPR Builder**-veldformatter zet deze cachemetadata op elk builderveld:

| Metadata | Waarde | Effect |
|---|---|---|
| Cachecontext | `user.roles:authenticated` | Anonieme en ingelogde bezoekers krijgen aparte cachevermeldingen. |
| Cachetags | De eigen tags van de entiteit, `config:dxpr_builder.settings`, en `config:language.entity.<langcode>` voor de gerenderde taal | Het opslaan van de entiteit, het opslaan van de module-instellingen of het wijzigen van de taalconfiguratie invalideert het gerenderde veld. |
| `max-age` | `0` voor elke ingelogde gebruiker | Buildervelden worden nooit gecachet door Dynamic Page Cache voor ingelogde gebruikers, omdat de render array gebruikersspecifieke `drupalSettings` draagt (e-mail, CSRF-tokens, profiel). |

Voor anonieme bezoekers wordt het veld normaal gecachet, dus Internal Page Cache en Dynamic Page Cache serveren builderpagina's zonder de modulecode te draaien. Opslaan in de builder slaat de entiteit op, dus Drupal invalideert de cachetags van de entiteit zoals bij elke andere opslagactie.

Wanneer de editor op het veld is ingeschakeld, voegt de module `config:dxpr_builder.settings` opnieuw toe. Met **Asset source** op **Cloud** en zonder geconfigureerde productsleutel zet hij `max-age` ook op `0`, zodat de melding over de productsleutel op elke pagina verschijnt.

De eigen adminformulieren van de module invalideren `config:dxpr_builder.settings`expliciet: **General Settings**, **AI**, het gebruikersprofielformulier en de formulieren voor pagina- en gebruikerssjablonen.

## Views en blokken in een pagina

Blokken en views worden in de opgeslagen HTML bewaard als lege `az-cms-element`-placeholders. Wanneer het veld rendert, laadt de module elk blok of elke view, rendert die met de corerenderer en voegt de output in de veldmarkup in. De libraries van de view en `drupalSettings` worden naar het veld gekopieerd; zijn cachemetadata borrelt via de renderer door zoals bij elke render array die tijdens een paginarender wordt gebouwd.

Het gevolg is dat de rijen van een view in het gecachete veld blijven totdat een van de cachetags van de view wordt geïnvalideerd. Een view met tijdgebaseerde caching behoudt oude rijen gedurende zijn hele levensduur. Als bezoekers verouderde rijen zien:

1. Open de view, vouw **Advanced** uit, en zet **Caching** op **Tag based**. **None** stopt Dynamic Page Cache, maar Internal Page Cache bewaart nog steeds hele pagina's voor anonieme bezoekers.
2. Sla de view op. Het opslaan van een view invalideert ook `config:view_list`, wat de lijsten met views van de module voor de editor wist.
3. Wis alle caches.

In de editor wordt een blok of view die je toevoegt of wijzigt via `/dxpr_builder/ajax` opgehaald. De module cacht dat antwoord niet.

## Interne caches

Alle vermeldingen staan in de standaardcachebin (`cache.default`). De caches van de elementkiezer dragen de tag `dxpr_builder:cms_elements`plus de lijstcachetags van de entiteittypen die ze tonen, dus ze wissen zichzelf wanneer die entiteiten wijzigen.

| Cache-ID | Inhoud | Gewist door |
|---|---|---|
| `dxpr_builder:cms_elements_blocks`, `dxpr_builder:cms_block_categories` | Blokkenlijst en blokcategorieën voor de elementkiezer | Het opslaan of verwijderen van een inhoudsblok of een webformulier (`block_content_list`, webform-lijsttags), het verwijderen van de vermeldingen wanneer een module wordt gedeïnstalleerd, `drush cr` |
| `dxpr_builder:cms_disallowed_elements:<uid>:<roles hash>` | Blokken die de huidige gebruiker niet mag gebruiken | Dezelfde tags plus `config:user.role.<role>` voor elk van de rollen van de gebruiker |
| `dxpr_builder:cms_elements_views`, `dxpr_builder:cms_view_elements_settings`, `dxpr_builder:cms_views_tags` | View-displays, hun instellingen en identifiers voor de editor | Het opslaan, toevoegen of verwijderen van een view (`config:view_list`), `drush cr` |
| `dxpr_builder:button_styles` | Knopstijlen voor het Knop-element | Tag `dxpr_builder:cms_elements`, `drush cr` |
| `dxpr_builder_license_info` | Resultaat van de licentiestatusaanroep | Verloopt na 24 uur wanneer geautoriseerd, anders 30 minuten (`LICENSE_CHECK_INTERVAL`, `LICENSE_NOT_AUTHORIZED_INTERVAL`); geïnvalideerd nadat de site een gebruikerswijziging naar de licentieserver stuurt |
| `dxpr_builder_license_users` | Redacteurslijst van de licentieserver | Verloopt na 24 uur; geïnvalideerd nadat de site een gebruikerswijziging naar de licentieserver stuurt |
| `dxpr_builder_blacklisted` | Resultaat van de domeinblokkeerlijst | Verloopt na een uur, of na een minuut zolang het domein is geblokkeerd |
| `dxpr_builder:jwt_decoded:<sha256 of the key>` | Gedecodeerde productsleutel, één vermelding per key | Tag `config:dxpr_builder.settings` |

Thema-utilityklassen (`dxpr_builder_classes` in een `.info.yml` van een thema) komen uit de gecachete themainformatie van Drupal, dus een wijziging heeft `drush cr` nodig voordat de editor hem ziet. Pictogrammensetbestanden (`*.dxpr_icon_sets.yml`) worden bij elke editorpaginalading gelezen, maar een library die ze noemen heeft `drush cr` nodig zoals elke nieuwe library.

## Assets en aggregatie

De zes editorscripts zijn extern (Cloud) of gedeclareerd met `preprocess: FALSE`, dus aggregatie raakt ze nooit. Aggregatie geldt wel voor de helperlibraries van de editor, zoals `dxpr_builder/editor.core` met Sortableen voor de bestanden voor bezoekers (`dxpr_builder/core`, `dxpr_builder/editor.frontend`, de `elements.*`-libraries en `bootstrap_5`). Twee symptomen zijn terug te voeren op de aggregatiecache:

- De editor breekt na een update, of meldt `Sortable is not defined` alleen met aggregatie aan. Volg [De editor verschijnt niet](/nl/hc/documentation/learn-dxpr-builder/troubleshooting/editor-not-loading).
- Bezoekers zien geen styling of pictogrammen na een update of een instellingswijziging. Volg [Bezoekers zien iets anders](/nl/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else).

## Wat na een update wissen

1. Draai de database-updates en wis daarna de caches:

    ```bash
    drush updb -y
    drush cr

    ```

    `drush cr` herbouwt de librarydefinities van de builder, die de moduleversie en de assetbron volgen, de geaggregeerde assetbestanden en de interne caches hierboven.
2. Open één builderpagina als redacteur en sla die op. Dit schrijft de pagina met de markup van de huidige release en invalideert zijn entiteitstags.
3. Purge achter Varnish of een CDN de builderpagina's of wacht tot de maximale leeftijd voorbij is; de module stuurt geen purgeverzoeken.

Als een pagina voor bezoekers nog steeds oude inhoud toont, zie [Problemen na het updaten](/nl/hc/documentation/learn-dxpr-builder/troubleshooting/after-updating).

## Wat nu?

- [Performance](/nl/hc/documentation/learn-dxpr-builder/advanced/performance) voor wat elke bezoekers- en redacteurspagina downloadt.
- [Architectuur](/nl/hc/documentation/learn-dxpr-builder/development/architecture) voor de code die een builderveld rendert, opslaat en cacht.
- [Bezoekers zien iets anders](/nl/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else)voor de cachegerelateerde symptomen en hun oplossingen.