Oracle ADF Faces Configuration and Profiling

Oracle Application Development Framework Performance Tuning 8-7 Use ADF rich client navigation. ADF Rich Client has an extensive support for navigation. One of the common use cases is tabbed navigation. This is currently supported by components like navigationPane which can bind to xmlMenuModel to easily define navigation. There is one drawback in this approach, however. It results in a full page refresh every time the user switches the tab. One option is to use panelTabbed instead. panelTabbed has built-in support for partial page rendering of the tabbed content without requiring any developer work. However, panelTabbed cannot bind to any navigational model and the content has to be available from within the page, so it has limited applicability. Cache resources. Developers are strongly encouraged to ensure that any resources that can be cached images, CSS, JavaScript have their cache headers specified appropriately. Also, client requests for missing resources on the server result in addition round trips to the server. To avoid this, make sure all the resources are present on the server. Reduce the size of state token cache Property defined in web.xml org.apache.myfaces.trinidad.CLIENT_ STATE_MAX_TOKENS in token-based client-side state saving, chooses how many tokens should be preserved at any one time. The default value is 15. When this is exceeded, state will have effectively been forgotten for the least recently viewed pages, which can impact users that actively use the Back button or that have multiple windows open simultaneously. In order to reduce live memory per session, consider reducing this value to 2. Reducing the state token cache to 2 means one Back button click is supported. For applications without support for Back button this value should be set to 1. Table 8–2 Cont. Configuration Parameters for ADF Faces Configuration Recommendation Description 8-8 Oracle Fusion Middleware Performance and Tuning Guide Define custom styles at the top of the page. A common developer task is to define custom styles inside a regular page or template page. Since most browsers use progressive scanning of the page, a late introduction of styles forces the browser to recompute the page. This impacts the page layout performance. For better performance, define styles at the top of the page and possibly wrap them inside the ADF group tag. An HTML page basically has two parts, the head and the body. When you put an af:document component on your page, this component creates both parts of the page for you. Any child component of the af:document is in the body part of the page. To get a component or static CDATA content to show up in the head, use the metaContainer facet. To get a component or static CDATA content to display in the head, use the metaContainer facet as follows: af:document title={attrs.documentTitle} theme=dark f:facet name=metaContainer af:group[CDATA[ style type=textcss .TabletNavigationGlobal { text-align: right; padding-left: 0px; padding-right: 10px; white-space: nowrap; } HTML[dir=rtl] .TabletNavigationGlobal { text-align: left; padding-left: 10px; padding-right: 0px; } style ]] af:facetRef facetName=metaContainer af:group f:facet af:form ... af:facetRef facetName=body af:form af:document If you use page templates, consider including af:document and af:form in the template definition and expose anything that you may want to customize in those tags through the page template attributes and page template af:facetRef. Your templates are then able to utilize the metaContainer facet if they have template-specific styling as shown above. Also, your usage pages do not have to repeat the same document and form tags on every page. See the Oracle Fusion Middleware Fusion Developers Guide for Oracle Application Development Framework for details about af:facetRef. Table 8–2 Cont. Configuration Parameters for ADF Faces Configuration Recommendation Description