Checklist for High-Performance WDA Programming
Use
Keep in mind the following points when programming Web Dynpro ABAP applications.
|
|
Design your application for good performance and pay attention to low memory consumption. |
|
|
First check your own coding for performance and memory bottlenecks before you create a message under component BC-WD-ABA. |
|
|
Run performance and memory tests. |
|
|
Read the Web Dynpro ABAP Documentation. |
Tools
Dos and Dont's: Web Dynpro Components
Only use Web Dynpro entities for UI programming.
|
|
Do not write your entire application source code in Web Dynpro components. For more information, see: Number, Size, and Genericness of Components |
|
|
Write your application source code in ABAP OO classes. For example, use the assistance class. |
|
|
Use Web Dynpro components only for managing the views and context. |
|
|
Do not create a Web Dynpro component for one single view only. |
|
|
In a Web Dynpro component, group together as many views that belong to one application part as possible. If, however, the ABAP workload is too large, split the component up. |
|
|
Delete all Web Dynpro component instances as soon as they are no longer needed. To do that, use IF_WD_COMPONENT_USAGE=>DELETE_COMPONENT. |
|
|
Use dynamic navigation or dynamic component usages only if it is absolutely necessary. |
|
|
Set the lifetime of a view to when visible, if the view is displayed only once in an application. |
|
|
As far as possible always set the lifetime to when visible. |
Dos and Dont's: Web Dynpro Context
UI data is stored and managed in the Web Dynpro context.
|
|
Do not put all your data into the context. Do not create a mega context for all data belonging to one application. |
|
|
Put only the data required for the UI element binding into the context. |
|
|
Use the assistance class or other ABAP OO classes for the data exchange. |
|
|
If required create local contexts, for example, in views |
|
|
Do not create deep-nested contexts. |
|
|
Use singleton nodes if nestings (master detail) are necessary |
|
|
Do not use dynamic attributes ( IF_WD_CONTEXT_NODE_INFO->ADD_ATTRIBUTE) |
|
|
Use data with context structure for BIND_TABLE |
|
|
Update the context only if the data actually has to be updated |
|
|
Do not create long context mapping chains |
More Information: Context
Dos and Dont's: Web Dynpro UI Elements
The size of your application screen has enormous effects on performance.
|
|
Do not use container scrolling ( scrollingMode<>none) |
|
|
Do not use the scrolling function of the browser window. |
|
|
Create application screen that fit into a typical browser window |
|
|
Use the scrolling features of Table, MultiPane, and RowRepeater |
|
|
Avoid deep nestings of Containers, Group s, and TabStrip s. |
|
|
Do not insert any TransparentContainer UI elements into Container UI elements, for example, Group s. |
|
|
To minimize nesting depths, if possible, swap the RootUIElementContainer UI element ( TransparentContainer) with other Container UI elements, such as Table, TabStrip, and Group. See also Root Elements of Views. |
|
|
It is best to arrange logically nested contents into rows |
|
|
As far as possbile, do not use the UI element tree |
|
|
To display tree structures use a Table with either TreeByKeyTableColumn or TreeByNestingTableColumn. |
|
|
Do not use dynamic UI element programming and/or multiple components for repeating layouts |
|
|
Use RowRepeater or MultiPane for repeating layouts. |
|
|
Modify your UI elements only if they really have to be changed |
|
|
If possible, use delta rendering |
|
|
Note that there are special Performance Aspects when using the InteractiveForm UI element. |
More Information: User Interface
