Performance tips using PanelTabbed

Task Flows in WebCenter Portal 11g are rendered sequentially. It means that until the last Task Flow loads it owns first activity then the page will not be rendered.

There is a trick proposed by Oracle ATEAM in order to simulate Lazy Loading when rendering Task Flows

http://www.ateam-oracle.com/improving-adf-page-rendering-time/

In addition, exists a magic number about how many Task Flows should be in a page at maximum. Between 6 or 8.

However, sometimes there are many Task Flows in an af:panelTabbed with a lot of tabs including a Task Flow each one.

By default, all Task Flows will be executed when the Page is rendering just the selected Tab...

How can be executed just the current tab?

Configuring the Activation property of the Task Flows.

Andrejus explains how to set the Task Flow property Activation. With this property you can control the activation and deactivation of Task Flows when the tabs are selected.http://andrejusb.blogspot.com.es/2013/09/conditional-task-flow-activation-in-adf.html

Configuring "childCreation" property of af:panelTabbed

This property allows to set when to execute the code and components inside of the Tabs. It has the following values:

  • immediate: Load all Task Flows and components of all tabs during rendering.
  • lazy: Just execute the current tab storing the last status of the Task Flow in the tab. It means that when you navigate to a tab that was executed previously it remember the last status and the Task Flow is NOT re-executed.
  • lazyUncached: Just execute the current tab. It doesn't cache the status. The Task Flows are always re-executed.

Setting lazy or lazyUncached as childCreation can be an important Performance Boost.

childCreation is IMMEDIATE by default.

References:

http://docs.oracle.com/cd/E28280_01/apirefs.1111/e12419/tagdoc/af_panelTabbed.html