Show TOC

Checkliste für performante WDA-ProgrammierungLocate this document in the navigation structure

Verwendung

Beachten Sie bei der Programmierung von Web-Dynpro-ABAP-Anwendungen die folgenden grundlegenden Aspekte.

Designen Sie Ihre Anwendung für gute Performance und achten Sie auf geringen Speicherverbrauch

Überprüfen Sie zuerst Ihr eigenes Coding auf Performance- und Speicherengpässe hin, bevor Sie eine Meldung unter BC-WD-ABA anlegen

Führen Sie entwicklungsbegleitend Performance- und Memory-Tests durch

Lesen Sie die Web-Dynpro-ABAP-Dokumentation

Dos and Dont's: Web-Dynpro-Components

Achten Sie darauf, Web-Dynpro-Entitäten nur für die UI-Programmierung zu verwenden.

Schreiben Sie nicht Ihr gesamtes Anwendungscoding in Web-Dynpro-Components.

Weitere Informationen: Anzahl, Größe und Generik von Components

Schreiben Sie Ihr Anwendungscoding in ABAP-OO-Klassen. Verwenden Sie beispielsweise die Assistance-Klasse.

Verwenden Sie Web-Dynpro-Components nur dazu, die Views und den Context zu verwalten

Hinweis

Beachten Sie, dass Web-Dynpro-Components keine "Leichtgewichte" sind...

Erstellen Sie keine Web-Dynpro-Component nur für eine einzigen View

Fassen Sie möglichst alle Views, die zu einem Anwendungsteil gehören, in einer Web-Dynpro-Component zusammen.

Wenn jedoch die ABAP-Load zu groß wird, splitten Sie die Component auf.

Löschen Sie alle Web-Dynpro-Component-Instanzen, sobald sie nicht mehr benötigt werden. Verwenden Sie dazu IF_WD_COMPONENT_USAGE=>DELETE_COMPONENT

Verwenden Sie dynamische Navigation oder dynamische Component-Usages nur dann, wenn es sich absolut nicht vermeiden lässt

Setzen Sie die Lebensdauer einer View auf when visible, wenn die View nur einmal in der Anwendung angezeigt wird, d.h. wenn die View nicht ein zweites Mal verwendet wird

Setzen Sie möglichst immer die Lebensdauer auf when visible.

Hinweis

Durch die Lebensdauer when visible wird zwar der Speicherverbrauch reduziert, aber when visible kann Auswirkungen auf die Performance haben, weil in diesem Fall die View jedes Mal, wenn sie angezeigt wird, initialisiert werden muss.

Siehe auch Auf- und Abbauen von Components und Views.

Dos and Dont's: Web-Dynpro-Context

Im Web-Dynpro-Context werden die UI-Daten abgelegt und verwaltet.

Stellen Sie nicht alle Ihre Daten in den Context.

Erstellen Sie also keinen Mega-Context für alle Daten einer Anwendung

Stellen Sie nur die Daten in den Context, die für das UI-Element-Binding notwendig sind

Verwenden Sie die Assistance-Klasse oder andere ABAP-OO-Klassen für den Datenaustausch

Erstellen Sie je nach Bedarf lokale Contexte, beispielsweise in Views

Erstellen Sie keine tief verschachtelten Contexte

Verwenden Sie Singleton-Knoten, wenn Verschachtelungen (Master-Detail) benötigt werden

Verwenden Sie keine dynamischen Attribute ( IF_WD_CONTEXT_NODE_INFO->ADD_ATTRIBUTE)

Verwenden Sie Daten mit der Context-Struktur für BIND_TABLE

Aktualisieren Sie den Context nur dann, wenn die Daten auch tatsächlich aktualisiert werden müssen

Erstellen Sie keine langen Context-Mapping-Ketten

Weitere Informationen: Context

Dos and Dont's: Web-Dynpro UI-Elemente

Die Größe Ihres Anwendungsbildschirms hat enorme Auswirkungen auf die Performance.

Verwenden Sie kein Container-Scrolling ( scrollingMode<>none)

Verwenden Sie nicht die Scrolling-Funktionalität des Browser-Fensters.

Hinweis

Beachten Sie die folgende Ausnahme:

Wenn der Anwendungsbildschirm nur zum Anzeige und nicht für Benutzereingaben dienen soll, können Sie ausnahmsweise das Browser-Scrolling verwenden, um unnötige Server-Roundtrips zu vermeiden.

Erstellen Sie Anwendungsbildschirme, die in ein typisches Browser-Fenster passen

Verwenden Sie die Scrolling-Features der Table, der MultiPane und des RowRepeaters

Vermeiden Sie tiefe Verschachtelungen von Containern, Group s und TabStrip s.

Hinweis

Durch Verschachtelungen werden Server- und Client-Performance stark beeinflusst.

Es kann auch aufgrund von Browser-Einschränkungen, die nicht vom Web-Dynpro-ABAP-Framework beeinflusst werden können, vorkommen, dass tief verschachtelte Inhalte am Frontend nicht angezeigt werden.

Fügen Sie keine TransparentContainer UI-Elemente in Container-UI-Elemente, wie Group s, ein.

Tauschen Sie, wenn möglich, das RootUIElementContainer UI-Element ( TransparentContainer) durch andere Container-UI-Elemente wie Table, TabStrip oder Group, aus, um Verschachtelungstiefen zu minimieren.

Siehe auch Root-Elemente von Views

Ordnen Sie logisch ineinander verschachtelte Inhalte am besten in Zeilen an

Verwenden Sie möglichst nicht das UI-Element Tree

Für die Darstellung von Baumstrukturen verwenden Sie eine Table mit entweder TreeByKeyTableColumn oder TreeByNestingTableColumn

Verwenden Sie nicht dynamische UI-Element-Programmierung und/oder multiple Components für sich wiederholende Layouts

Verwenden Sie den RowRepeater oder die MultiPane für sich wiederholende Layouts

Modifizieren Sie Ihre UI-Elemente nur dann, wenn sie tatsächlich geändert werden müssen

Verwenden Sie, wenn möglich, das Delta-Rendering

Beachten Sie spezielle Performance-Aspekte bei der Verwendung des InteractiveForm-Oberflächenelements.

Weitere Informationen: User Interface