Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,075 of 9,075 pages
About the help in other languages
All help pages

Fetch-Leistung

Templates schnell halten, wenn sie Inhalte lesen - einmal abrufen, immer begrenzen, im Fetch filtern, Fetches in Schleifen und children bei großen Ordnern vermeiden, content_info bevorzugen, Zählungen zum Blättern…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/designers/templates/fetch-performance.md

On this page

This page is a translation. Read the English original

Fetch-Leistung

Diese Seite ist für Designer, deren Seiten langsam geworden sind. In Templates kommen fast alle Kosten von Fetches und den Attributen, die unbemerkt abrufen (children, parent, data_map). Die Regeln unten halten die Zahl der Datenbankabfragen klein.

Inhalt

  1. Die Regeln
  2. Attribute, die abrufen
  3. Die Schleifenfalle
  4. Messen

Die Regeln

  1. Einmal abrufen. Speichern Sie das Ergebnis in einer Variablen; übergeben Sie es Teilen als Parameter.
  2. Immer ein limit bei list und tree; blättern Sie mit offset und einem list_count.
  3. Im Fetch filtern (class_filter_array, attribute_filter), nicht mit {if} in der Schleife.
  4. Bevorzugen Sie, was Sie schon haben. Im Pagelayout enthält $module_result.content_info Klasse, Knoten-ID, Tiefe und URL-Alias der Seite ohne Fetch.
  5. Cachen Sie, was für viele Besucher gleich ist: Menüs und Fußzeilen in Cache-Blöcken (Cache-Block).
  6. Halten Sie Vollansichten cachebar, damit der View-Cache sie ausliefert (Caching für Designer).

Attribute, die abrufen

AttributKosten
$node.childrenalle Kinder, kein Limit, kein Filter
$node.children_counteine Zählabfrage
$node.parent, $node.pathein oder mehrere Knoten-Fetches
$node.data_mapdie Felder des Objekts (einmal pro Objekt geladen)
$node.object.owner, $node.creatorein Objekt-Fetch

$node.children bei einem Ordner mit Tausenden Einträgen ist die häufigste Ursache einer langsamen Seite: Verwenden Sie stattdessen einen Fetch mit Limit.

Die Schleifenfalle

{* slow: one fetch per child *}
{foreach $children as $child}
    {def $sub = fetch( 'content', 'list', hash( 'parent_node_id', $child.node_id ) )}
    ...
{/foreach}

Zehn Kinder bedeuten elf Abfragen, hundert bedeuten hundertundeine. Rufen Sie stattdessen die Nachkommen einmal mit tree und depth 2 ab und gruppieren Sie sie im Template, oder zeigen Sie die Unterebene nur auf der eigenen Seite des Kindes.

Messen

Schalten Sie auf einem Test-Siteaccess die Debug-Ausgabe für Ihre Adresse ein ([DebugSettings] DebugOutput=enabled, DebugByIP=enabled, DebugIPList[]): Sie zeigt die Zeit der Seite und die Datenbankabfragen. Vergleichen Sie vor und nach einer Änderung, mit geleerten Caches und noch einmal mit warmen.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x