Concurrent DOM Views

By default, each ICEfaces user can have only one dynamically updated page per web application. In this configuration, a single DOM is maintained for each user session. Reloading an ICEfaces page synchronizes the browser to the server-side DOM. Opening a new browser window into the same application, however, leads to page corruption as DOM updates may be applied unpredictably to either window.

To allow multiple windows for a single application, concurrent DOM views must be enabled. See Configuring web.xml to configure the web.xml file for concurrent DOM views.

With concurrent DOM views enabled, each browser window is distinctly identified with a view number and DOM updates will be correctly applied to the appropriate window. This introduces some important considerations for the application data model. Managed beans in session scope can now be shared across multiple views simultaneously. This may be the desired scope for some states, but typically, presentation-related state is more appropriately kept in request scope. For example:

Note: The ICEfaces request scope is typically longer lived than the request scope for non-dynamic applications. An ICEfaces request begins with the initial page request and remains active through user interactions with that page (such user interactions would normally each require a new request). One consideration is that new browser windows and page reloads of the same browser window are both regarded as new requests. Therefore, it is important to implement the dynamic aspects of the ICEfaces application so that asynchronous notifications are applied to all active requests and not just the initial one.

For applications that do not make use of Concurrent DOM views and require request scope to last only for the duration of a single user event, "standard request scope" must be enabled. See Configuring web.xml to configure the web.xml file for "standard request scope".

Managed Bean Scope
For transient data.
For typical view-related state, request-scope beans will persist through most user interaction but not through view changes. This is the recommended scope for ICEfaces applications that make use of multiple windows.
For state that must be shared across views.
For state that must be shared across users.
The following table shows a summary of the Managed Bean Scope.

Note: Most browsers place limitations on the number of concurrent open HTTP requests. Therefore, applications with concurrent views must have regular asynchronous update, such as from a ticking clock in the page, so that the network connection is continually refreshed. This may be mitigated in the future either by improvements in browser HTTP handling or by a synchronous mode for ICEfaces.

Copyright 2005-2006. ICEsoft Technologies, Inc.