---
url: 'https://dxpr.com/de/hc/documentation/learn-dxpr-builder/advanced/caching'
title: 'Caching | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T04:03:55+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  Eine DXPR-Builder-Seite ist ein Drupal-Feld-Render-Array mit eigenen
  Cache-Metadaten, plus einer Handvoll interner Caches, die das Modul
  für den Editor und die Lizenzprüfung hält. Diese Seite listet auf, was
  der Code zwischenspeichert, welche Tags und Kontexte er nutzt, was sie
  ungültig macht und was Sie nach einem Update von Hand leeren.
  Das Builder-Feld
  Der Feld-Formatierer DXPR Builder setzt diese Cache-Metadaten auf
  jedes Builder-Feld:
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: |-
        Eine DXPR-Builder-Seite ist ein Drupal-Feld-Render-Array mit eigenen
        Cache-Metadaten, plus einer Handvoll interner Caches, die das Modul
        für den Editor und die Lizenzprüfung hält. Diese Seite listet auf, was
        der Code zwischenspeichert, welche Tags und Kontexte er nutzt, was sie
        ungültig macht und was Sie nach einem Update von Hand leeren.
        Das Builder-Feld
        Der Feld-Formatierer DXPR Builder setzt diese Cache-Metadaten auf
        jedes Builder-Feld:
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T04:03:55+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/de/hc/documentation/learn-dxpr-builder/advanced/caching'
      articleSection: 'Naar productie'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/de/hc/documentation/learn-dxpr-builder/advanced/caching'
      description: |-
        Eine DXPR-Builder-Seite ist ein Drupal-Feld-Render-Array mit eigenen
        Cache-Metadaten, plus einer Handvoll interner Caches, die das Modul
        für den Editor und die Lizenzprüfung hält. Diese Seite listet auf, was
        der Code zwischenspeichert, welche Tags und Kontexte er nutzt, was sie
        ungültig macht und was Sie nach einem Update von Hand leeren.
        Das Builder-Feld
        Der Feld-Formatierer DXPR Builder setzt diese Cache-Metadaten auf
        jedes Builder-Feld:
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Startseite
            item: 'https://dxpr.com/de'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: de
---
[Help Center](/de/hc)/[Documentation](/de/hc/documentation) /[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

- [Performance](/de/hc/documentation/learn-dxpr-builder/advanced/performance)
- [Architektur](/de/hc/documentation/learn-dxpr-builder/development/architecture)
- [Visitors see something different](/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else)

Eine DXPR-Builder-Seite ist ein Drupal-Feld-Render-Array mit eigenen Cache-Metadaten, plus einer Handvoll interner Caches, die das Modul für den Editor und die Lizenzprüfung hält. Diese Seite listet auf, was der Code zwischenspeichert, welche Tags und Kontexte er nutzt, was sie ungültig macht und was Sie nach einem Update von Hand leeren.

## Das Builder-Feld

Der Feld-Formatierer **DXPR Builder** setzt diese Cache-Metadaten auf jedes Builder-Feld:

| Metadaten | Wert | Wirkung |
|---|---|---|
| Cache-Kontext | `user.roles:authenticated` | Anonyme und angemeldete Besucher erhalten getrennte Cache-Einträge. |
| Cache-Tags | Die eigenen Tags der Entität, `config:dxpr_builder.settings`, und `config:language.entity.<langcode>` für die gerenderte Sprache | Das Speichern der Entität, das Speichern der Moduleinstellungen oder das Ändern der Sprachkonfiguration macht das gerenderte Feld ungültig. |
| `max-age` | `0` für alle Angemeldeten | Builder-Felder werden für Angemeldete nie vom Dynamic Page Cache zwischengespeichert, weil das Render-Array benutzerspezifische `drupalSettings` trägt (E-Mail, CSRF-Tokens, Profil). |

Für anonyme Besucher wird das Feld normal zwischengespeichert, daher liefern Internal Page Cache und Dynamic Page Cache Builder-Seiten aus, ohne den Modulcode laufen zu lassen. Das Speichern im Builder speichert die Entität, daher macht Drupal die Cache-Tags der Entität ungültig wie bei jedem anderen Speichern.

Wenn der Editor auf dem Feld aktiviert ist, fügt das Modul `config:dxpr_builder.settings` erneut hinzu. Mit **Asset source**auf **Cloud** und ohne konfigurierten Produktschlüssel setzt es `max-age` außerdem auf `0`, sodass die Produktschlüssel-Meldung auf jeder Seite erscheint.

Die eigenen Admin-Formulare des Moduls machen `config:dxpr_builder.settings` explizit ungültig: **General Settings**, **AI**, das Benutzerprofil-Formular sowie die Seiten- und Benutzervorlagen-Formulare.

## Ansichten und Blöcke in einer Seite

Blöcke und Ansichten liegen im gespeicherten HTML als leere `az-cms-element`-Platzhalter. Beim Rendern des Felds lädt das Modul jeden Block bzw. jede Ansicht, rendert ihn bzw. sie mit dem Core-Renderer und fügt die Ausgabe in das Feld-Markup ein. Die Bibliotheken der Ansicht und ihre `drupalSettings` werden auf das Feld kopiert; ihre Cache-Metadaten steigen durch den Renderer auf wie bei jedem Render-Array, das während eines Seiten-Renders gebaut wird.

Die Folge ist, dass die Zeilen einer Ansicht im zwischengespeicherten Feld bleiben, bis eines der Cache-Tags der Ansicht ungültig wird. Eine Ansicht mit zeitbasiertem Caching behält alte Zeilen über ihre gesamte Lebensdauer. Wenn Besucher veraltete Zeilen sehen:

1. Öffnen Sie die Ansicht, klappen Sie **Advanced** auf und setzen Sie **Caching** auf **Tag based**. **None** stoppt Dynamic Page Cache, aber Internal Page Cache hält ganze Seiten für anonyme Besucher weiterhin vor.
2. Speichern Sie die Ansicht. Das Speichern jeder Ansicht macht außerdem `config:view_list` ungültig, was die Ansichtslisten des Moduls für den Editor leert.
3. Leeren Sie alle Caches.

Im Editor werden ein hinzugefügter oder geänderter Block bzw. eine hinzugefügte oder geänderte Ansicht über `/dxpr_builder/ajax`abgerufen. Das Modul speichert diese Antwort nicht zwischen.

## Interne Caches

Alle Einträge leben im Standard-Cache-Bin (`cache.default`). Die Elementauswahl-Caches tragen das Tag `dxpr_builder:cms_elements`plus die Listen-Cache-Tags der Entitätstypen, die sie auflisten, sodass sie sich bei Änderungen dieser Entitäten selbst leeren.

| Cache-ID | Inhalt | Geleert durch |
|---|---|---|
| `dxpr_builder:cms_elements_blocks`, `dxpr_builder:cms_block_categories` | Blockliste und Blockkategorien für die Elementauswahl | Speichern oder Löschen eines Inhaltsblocks oder Webformulars (`block_content_list`, Webformular-Listen-Tags), Löschen der Einträge bei Deinstallation irgendeines Moduls, `drush cr` |
| `dxpr_builder:cms_disallowed_elements:<uid>:<roles hash>` | Blöcke, die aktuell Bearbeitende nicht nutzen dürfen | Dieselben Tags plus `config:user.role.<role>` für jede Rolle der bearbeitenden Person |
| `dxpr_builder:cms_elements_views`, `dxpr_builder:cms_view_elements_settings`, `dxpr_builder:cms_views_tags` | Anzeige-Ansichten, ihre Einstellungen und Kennungen für den Editor | Speichern, Hinzufügen oder Löschen jeder Ansicht (`config:view_list`), `drush cr` |
| `dxpr_builder:button_styles` | Schaltflächenstile für das Button-Element | Tag `dxpr_builder:cms_elements`, `drush cr` |
| `dxpr_builder_license_info` | Ergebnis des Lizenzstatus-Aufrufs | Läuft nach 24 Stunden ab, wenn autorisiert, sonst nach 30 Minuten (`LICENSE_CHECK_INTERVAL`, `LICENSE_NOT_AUTHORIZED_INTERVAL`); ungültig, nachdem die Website eine Benutzeränderung an den Lizenzserver sendet |
| `dxpr_builder_license_users` | Redaktionsliste vom Lizenzserver | Läuft nach 24 Stunden ab; ungültig, nachdem die Website eine Benutzeränderung an den Lizenzserver sendet |
| `dxpr_builder_blacklisted` | Ergebnis der Domain-Blockliste | Läuft nach einer Stunde ab, oder nach einer Minute, solange die Domain blockiert ist |
| `dxpr_builder:jwt_decoded:<sha256 of the key>` | Decodierter Produktschlüssel, ein Eintrag pro Schlüssel | Tag `config:dxpr_builder.settings` |

Theme-Dienstklassen (`dxpr_builder_classes` in einer `.info.yml` des Themes) stammen aus Drupals zwischengespeicherten Theme-Informationen, daher braucht eine Änderung `drush cr`, bevor der Editor sie sieht. Icon-Set-Dateien (`*.dxpr_icon_sets.yml`) werden bei jedem Editor-Seitenaufruf gelesen, aber eine Bibliothek, die sie nennen, braucht `drush cr` wie jede neue Bibliothek.

## Assets und Aggregation

Die sechs Editor-Skripte sind entweder extern (Cloud) oder mit `preprocess: FALSE` deklariert, daher rührt Aggregation sie nie an. Aggregation greift bei den Helfer-Bibliotheken des Editors, etwa `dxpr_builder/editor.core` mit Sortable, und bei den besucherseitigen Dateien (`dxpr_builder/core`, `dxpr_builder/editor.frontend`, die `elements.*`-Bibliotheken und `bootstrap_5`). Zwei Symptome gehen auf den Aggregations-Cache zurück:

- Der Editor bricht nach einem Update ab, oder meldet `Sortable is not defined` nur bei eingeschalteter Aggregation. Folgen Sie [Der Editor erscheint nicht](/hc/documentation/learn-dxpr-builder/troubleshooting/editor-not-loading).
- Besucher sehen nach einem Update oder einer Einstellungsänderung keine Stile oder Icons. Folgen Sie [Besucher sehen etwas anderes](/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else).

## Was nach einem Update zu leeren ist

1. Führen Sie die Datenbank-Updates aus, dann leeren Sie die Caches:

    ```bash
    drush updb -y
    drush cr

    ```

    `drush cr` baut die Builder-Bibliotheksdefinitionen neu auf, die der Modulversion und der Asset-Quelle folgen, die aggregierten Asset-Dateien sowie die internen Caches oben.
2. Öffnen Sie eine Builder-Seite als bearbeitende Person und speichern Sie sie. Dies schreibt die Seite mit dem Markup des aktuellen Releases und macht ihre Entitäts-Tags ungültig.
3. Hinter Varnish oder einem CDN leeren Sie die Builder-Seiten oder warten, bis das Maximalalter verstreicht; das Modul sendet keine Purge-Anfragen.

Wenn eine Seite Besuchern weiterhin alte Inhalte zeigt, siehe [Probleme nach dem Update](/hc/documentation/learn-dxpr-builder/troubleshooting/after-updating).

## Wie geht es weiter?

- [Performance](/de/hc/documentation/learn-dxpr-builder/advanced/performance): was jede Besucher- und Editorseite lädt.
- [Architektur](/de/hc/documentation/learn-dxpr-builder/development/architecture): der Code, der ein Builder-Feld rendert, speichert und zwischenspeichert.
- [Besucher sehen etwas anderes](/hc/documentation/learn-dxpr-builder/troubleshooting/visitors-see-something-else): die Cache-bezogenen Symptome und ihre Lösungen.