Show TOC

Delta-RenderingLocate this document in the navigation structure

Verwendung

Das View-basierte Delta-Rendering dient der Performance-Verbesserung der Benutzerinteraktion komplexer Applikationen, wenn nur ein Teil (View) der angezeigten Seite aktualisiert werden muss. Es wird lediglich die View neu gerendert, die tatsächlich geändert wurde. Wenn mehrere Views geändert wurden, dann wird die View gerendert, die die geänderten Views enthält sowie die darunterliegenden geänderten Views, so dass nur ein Bereich auf der Seite ersetzt wird. Für die Programmierung bedeutet dies, dass Sie unnötige Context-Updates vermeiden sollten und ebenfalls keine unnötigen Änderungen an View-Elementen durchführen sollten.

Das Delta-Rendering bietet somit u.a. die folgenden Vorteile:

  • Schnelles Öffnen des Kontextmenüs

  • Schnelles Auslösen von Portal-Navigation und Öffnen eines separaten Fensters

  • Schnelleres Blättern und schnellere Benutzerinteraktion mit ALV-Tabellen

  • Beschleunigung von Aktionen, die nur Auswirkungen auf einen Teil des Screens haben

Standardmäßig laufen alle Web-Dynpro-Applikationen ab Enhancement Packagae 2 mit Delta-Rendering ab. Sie können das Delta-Rendering mittels Applikationsparameter wdDeltaRendering für eine individuelle Applikation folgendermaßen aktivieren bzw deaktivieren:

  • Setzen des Delta-Rendering über den Applikationsparameter WDDELTARENDERING

    oder

  • Setzen des Delta-Rendering über den URL-Parameter sap-wd-DeltaRendering

Vorgehensweisen

Vorgehensweise für den URL-Parameter

  1. Rufen Sie die URL der Anwendung auf, für die Sie das Delta-Rendering aktivieren möchten.

  2. Aktivieren Sie das Delta-Rendering, indem Sie den URL-Parameter sap-wd-DeltaRendering mit dem Wert ON der URL hinzufügen.

  3. Drücken Sie Enter.

Hinweis

Beachten Sie, dass der URL-Parameter sap-wd-DeltaRendering den Applikationsparameter WDDELTARENDERINGübersteuert.

Vorgehensweise für den Applikationsparameter

  1. Rufen Sie im Web Dynpro Explorer die Eigenschaften Ihrer Web-Dynrpo-Anwendung durch Doppelklicken auf die Anwendung auf.

  2. Wechsels Sie auf den Tabreiter Parameter.

  3. Wählen Sie im Änderungsmodus über die F4-Hilfe bei Parameter den Eintrag WDDELTARENDERING aus.

  4. Fügen Sie als dazu gehörigen Wert manuell ON ein.

  5. Sichern Sie Ihre Eingaben.

Einsatz des Delta-Rendering

Generell empfehlen wir, das Delta-Rendering für komplexe Seiten, bei denen häufig nur ein Teil der Seite aktualisiert wird, zu verwenden.

Entscheidend für den Erfolg des Delta-Renderings sind:

  • der Zuschnitt der einzelnen Views

  • dass nur auf die zu aktualisierenden Objekte (Context, View-Elemente) schreibend zugegriffen wird

Beispiel

Vorgehen

Eine Seite enthält mehrere große Table s

Fügen Sie jede Table in eine separate View ein

Eine Seite enthält eine TimedTrigger, der nach Updates polled

Fügen Sie den TimedTrigger in eine separate View ein.

Hinweis

Die Verwendung eines TimedTrigger als Polling-Methode kann zu Performance-Problemen führen.

Eine Seite enthält Elemente, die vom Delta-Rendering nicht unterstützt werden (siehe unten)

Fügen Sie die nicht vom Delta-Rendering unterstützten Elemente in separate Views ein

Eine Seite enthält einen Bereich, der aufgrund eines InputField onEnter- oder onChange-Events aktualisiert werden soll

Fügen Sie die zu aktualisierenden Elemente und das auslösende InputField in eine separate View ein

Funktionalität des Delta-Rendering

Das Delta-Rendering zielt darauf ab, nur den durch die Anwendung geänderten Bereich der dargestellten Seite zu aktualisieren. Die Granularität für diese Updates ist eine View. Es wird immer nur ein Bereich auf einmal aktualisiert, entsprechend wird immer die innerste aller geänderten Views umfassende View neu dargestellt. Im ungünstigsten Fall ist dies die oberste View der Anwendung.

Um zu ermitteln, welche Views aktualisiert werden müssen, werden Änderungsoperationen an der Web-Dynpro-Programmierschnittstelle registriert, die dazu führen können, dass sich die Visualisierung einer View ändert:

  • Navigation

  • Änderung am UI-Element-Baum

  • Änderung der Personalisierung

  • Änderungen am Context und ContextNodeInfos

  • Meldungen

Es wird dabei nicht geprüft, ob dies tatsächlich zu einer Wertänderung führt. Der bloße Aufruf einer ändernden Methode führt zum Aktualisieren der View.

Zusätzlich führt auch die Interaktion des Benutzers mit Bildschirmelementen zum Neuzeichnen der View.

Hinweis

Context-Mapping

Beachten Sie bei der Verwendung von Context-Mapping, dass eine Änderungsoperation an einem gemappten Context-Knoten und deren Unterknoten zum Aktualsieren jeder View führt, die auf diesen Knoten mappt. Dabei ist es unerheblich, ob die betreffenden Unterknoten oder Attribute in der Entwicklungsumgebung im Mapping übernommen wurden oder nicht.

Effekt des Delta-Rendering

Da das Delta-Rendering bereits vor dem eher "kostspieligen" Rendering-Vorgang aufsetzt, können in geeigneten Szenarien signifikante Performance-Verbesserungen sowohl im Server als auch im Web Browser erreicht werden.

Einschränkungen

Die folgenden UI-Elemente unterstützen (noch) nicht das Delta-Rendering:

  • TimedTrigger

  • Gantt

  • Network

  • InteractiveForm

  • OfficeControl

Daher wird eine View mit einem oder mehrerer dieser UI-Elemente mit dem Roundtrip aktualisiert.

Mögliche Nebenwirkungen

Verwendet eine Anwendung sehr viele fein-granulare Änderungsoperationen (z.B. SET_ATTRIBUTE-Aufrufe für jedes Feld eines Context-Knotens statt BIND_TABLE), so kann es durch das Delta-Rendering zu Performance-Einbußen kommen.

Fehler im Delta-Rendering können sich durch JavaScript-Fehler beim Aufruf von document.getElementById(...) nach einem Server-Roundtrip ausdrücken oder durch Bildschirmbereiche, die nicht aktualisiert wurden. Beachten Sie in diesen Fällen Hinweis 1021981 Auf SAP-Site veröffentlichte Informationen.

Tipps und Tricks

Das Delta-Rendering invalidiert infolge einer ändernden Context- oder UI-Element-Operation die betroffene View. Dies geschieht unabhängig davon, ob eine tatsächliche Zustandsänderung herbeigeführt wurde oder nicht. Die Invalidierung führt zum erneuten Rendern der View.

In den folgenden zwei Szenarien wird eine Überprüfung auf eine tatsächliche Zustandsänderung eingeführt:

  • Prüfung auf Wertänderung bei CL_WD_UIELEMENT=>SET_ENABLED und SET_VISIBLE

    Bei Aufruf der Methoden dieser Klasse oder von erbenden Klassen wird die View nur dann invalidiert, wenn der Wert von ENABLED bzw. VISIBLE sich auch wirklich ändert.

  • Prüfung auf Wertänderung bei IF_WD_CONTEXT_NODE=>SET_ATTRIBUTE und IF_WD_CONTEXT_ELEMENT=>SET_ATTRIBUTE

    Bei Aufruf der Methoden wird die View nur dann invalidiert, wenn der Wert sich auch wirklich ändert und folgende Kriterien eingehalten werden:

    1. Es wird ein Wert im Attribut VALUE mitgegeben

    2. Es wird ein statisches Attribut gesetzt

    3. Der ABAP-Typ von VALUE und des Attributs sind identisch oder beide Typen sind C oder STRING.

Weitere Informationen

Informationen über das Delta-Rendering in Verbindung mit dem Trace-Tool finden Sie unter Tuning und Fehlersuche.