Details
-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0-Alpha1
-
Fix Version/s: 2.0-Alpha3, 2.0.0
-
Component/s: Framework
-
Labels:None
-
Environment:ICEfaces 2.0
Description
The current mechanism of specifying com.icesoft.faces.synchronousUpdate true/false per web application is too coarse: if push interaction is not required during a certain phase of the application, the blocking connection should not be established.
To optimize this, the blocking connection should be established only when needed: only when the current view has been added to a render group and is capable of receiving push updates.
For instance, if PushRender.addCurrentSession() is called prior to page rendering, the bridge must subsequently be configured to initiate the blocking connection for that user.
If a session has been added to a render group, in order to shutdown the blocking connection when not needed, the session will be removed from the render group when all active views have been closed. Therefore, the application must add each view prior to rendering (this is a common application practice since views are typically added independently).
This can be configured:
org.icefaces.push.establish="lazy"|always"|"never" ("lazy" is the default)
With "lazy" initialization, the push connection is established only when a given session or view has been added to a render group. With "always" establishment and "never" establishment, the behavior is the same as synchronousUpdate "false" and "true" respectively.
Issue Links
- is duplicated by
-
ICE-2102 Add granularity to synchronous vs asynchronous modes
- Closed
This issue might have been fixed by the resolution of
PUSH-30.