Show TOC

HintergrundDelta-Rendering

 

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.

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

  • 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 Hinweis

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

Ende des Hinweises.
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 Tables

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 Hinweis

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

Ende des Hinweises.

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 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.

Ende des Hinweises.
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.

Weitere Informationen

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