Die Funktion DTW_CACHE_PAGE() leitet Caching von ihrer Position in der Makrodatei ein. In der Regel stellen Sie die Funktion an den Anfang der Makrodatei, um die Leistung zu steigern und sicherzustellen, daß die gesamte HTML-Ausgabe zwischengespeichert wird.
Bei Anwendungen mit erweitertem Caching können Sie die Funktion DTW_CACHE_PAGE() in die HTML-Ausgabeabschnitte stellen, wenn Sie festlegen müssen, daß das Zwischenspeichern zu einem bestimmten Zeitpunkt während der Verarbeitung erfolgen soll anstatt am Anfang der Makrodatei. Diese Entscheidung kann beispielsweise davon abhängig sein, wie viele Zeilen von einer Abfrage oder von einem Funktionsaufruf zurückgegeben werden.
Beispiel: Stellen der Funktion in den HTML-Block, weil die Entscheidung, Daten zwischenzuspeichern, von der erwarteten Größe der HTML-Ausgabe abhängt
% DEFINE { ...%} ... %FUNCTION(DTW_SQL) count_rows(){ select count(*) from customer %REPORT{ %ROW{ @DTW_ASSIGN(ALL_ROWS, V1) %} %} %} %FUNCTION(DTW_SQL) all_customers(){ select * from customer %} %HTML (OUTPUT) { <html> <head> <title>This is the customer list </head> <body> @count_rows() %IF ($(ALL_ROWS) > "100") @DTW_CACHE_PAGE("mymacro.d2w", "http://www.mypage.org", "-1", status) %ENDIF @all_customers() </body> </html> %}
In diesem Beispiel wird die Seite basierend auf der erwarteten Größe der HTML-Ausgabe zwischengespeichert bzw. abgerufen. HTML-Ausgabeseiten werden nur dann als zwischenspeicherungswürdig betrachtet, wenn die Datenbanktabelle mehr als 100 Zeilen enthält. Net.Data sendet den Text im OUTPUT-Block, also This is the customer list, nach der Ausführung des Makros immer an den Browser. Der Text wird nie zwischengespeichert. Die Zeilen nach dem Funktionsaufruf @count_rows() werden zwischengespeichert bzw. abgerufen, wenn die Bedingungen des IF-Blocks erfüllt sind. Beide Abschnitte zusammen bilden eine vollständige Net.Data-Ausgabeseite.