Details
-
Type: Improvement
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.1-Beta2
-
Component/s: ACE-Components
-
Labels:None
-
Environment:ICEfaces 2 + ace:tabSet
-
Assignee Priority:P1
-
Affects:Documentation (User Guide, Ref. Guide, etc.)
Description
The ace:tabSet component allows for static and dynamic caching of tab content. But the existing policy is a little limited, of either always being dynamic or always being static. For example, when a statically cached tab is the current tab, then it still will still be static, so input components won't get to render any new values that the user had just entered. As well, when using dynamic caching, even the non-active tabs render their non-visible contents. So we should probably come up with several different policies that applications may choose between.
An attempt to make static automatically change to dynamic, when it's the active tab, failed, since the old dom contents were no longer there to difference against, so it resulted in completely uncaching the tab. So, once you go static, you only want to go dynamic if you plan on updating that tab's content completely.
cacheMethod:
none
dynamic
static
dynamicRevertStatic
staticExceptDynamicWhenChildPostback
If a static tabPane wants to temporarily switch to being dynamic, for just the current iifecycle, then there's a bunch of boilerplate code that the application has to write to manage that one-off switch and revert of the setting. We could instead add an edge policy such as dynamicRevertStatic, which would cause the tabPane component to temporarily behave as dynamic, but the itself switch the property back to static when done the current lifecycle's processing.
When a tabPane is statically cached, but has input or command components in it, then we need a policy to make it dynamic only when the child input or command component has done a postback, which would be the staticExceptDynamicWhenChildPostback mode.
An attempt to make static automatically change to dynamic, when it's the active tab, failed, since the old dom contents were no longer there to difference against, so it resulted in completely uncaching the tab. So, once you go static, you only want to go dynamic if you plan on updating that tab's content completely.
cacheMethod:
none
dynamic
static
dynamicRevertStatic
staticExceptDynamicWhenChildPostback
If a static tabPane wants to temporarily switch to being dynamic, for just the current iifecycle, then there's a bunch of boilerplate code that the application has to write to manage that one-off switch and revert of the setting. We could instead add an edge policy such as dynamicRevertStatic, which would cause the tabPane component to temporarily behave as dynamic, but the itself switch the property back to static when done the current lifecycle's processing.
When a tabPane is statically cached, but has input or command components in it, then we need a policy to make it dynamic only when the child input or command component has done a postback, which would be the staticExceptDynamicWhenChildPostback mode.
Issue Links
- blocks
-
ICE-7450 ace:tabSet with tabPane cached on client still fire a tab selection
- Closed
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Mark Collette
created issue -
Ken Fyten
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Mark Collette [ mark.collette ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 2.1-Beta [ 10291 ] | |
Assignee Priority | P2 |
Ken Fyten
made changes -
Comment | [ A comment with security level 'icesoft-internal-developers' was removed. ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Fix Version/s | 2.1-Beta [ 10291 ] | |
Assignee Priority | P2 | |
Assignee | Mark Collette [ mark.collette ] |
Mark Collette
made changes -
Salesforce Case | [] | |
Description |
The ace:tabSet component allows for static and dynamic caching of tab content. But the existing policy is a little limited, of either always being dynamic or always being static. For example, when a statically cached tab is the current tab, then it still will still be static, so input components won't get to render any new values that the user had just entered. As well, when using dynamic caching, even the non-active tabs render their non-visible contents. So we should probably come up with several different policies that applications may choose between. cacheMethod: dynamicAlways staticAlways dynamicWhenActiveStaticOtherwise Also, if a staticAlways tabPane wants to temporarily switch to being dynamic, for just the current iifecycle, then there's a bunch of boilerplate code that the application has to write to manage that one-off switch and revert of the setting. We could instead add an edge policy such as staticAlwaysExceptNow, which would cause the tabPane component to temporarily behave as dynamic, but the itself switch the property back to staticAlways when done the current lifecycle's processing. |
The ace:tabSet component allows for static and dynamic caching of tab content. But the existing policy is a little limited, of either always being dynamic or always being static. For example, when a statically cached tab is the current tab, then it still will still be static, so input components won't get to render any new values that the user had just entered. As well, when using dynamic caching, even the non-active tabs render their non-visible contents. So we should probably come up with several different policies that applications may choose between. An attempt to make static automatically change to dynamic, when it's the active tab, failed, since the old dom contents were no longer there to difference against, so it resulted in completely uncaching the tab. So, once you go static, you only want to go dynamic if you plan on updating that tab's content completely. cacheMethod: none dynamic static dynamicRevertStatic staticExceptDynamicWhenChildPostback If a static tabPane wants to temporarily switch to being dynamic, for just the current iifecycle, then there's a bunch of boilerplate code that the application has to write to manage that one-off switch and revert of the setting. We could instead add an edge policy such as dynamicRevertStatic, which would cause the tabPane component to temporarily behave as dynamic, but the itself switch the property back to static when done the current lifecycle's processing. When a tabPane is statically cached, but has input or command components in it, then we need a policy to make it dynamic only when the child input or command component has done a postback, which would be the staticExceptDynamicWhenChildPostback mode. |
Ken Fyten
made changes -
Summary | ace:tabSet additional caching policies | ace:tabSet additional cacheStatically policies |
Environment | ICEfaces 2 + ACE | ICEfaces 2 + ace:tabSet |
Salesforce Case | [] | |
Fix Version/s | 2.1 [ 10241 ] | |
Affects | [Documentation (User Guide, Ref. Guide, etc.)] | |
Assignee Priority | P1 | |
Affects Version/s | 2.1-Beta2 [ 10294 ] | |
Affects Version/s | 2.1 [ 10241 ] | |
Assignee | Mark Collette [ mark.collette ] |
Evgheni Sadovoi
made changes -
Salesforce Case | [5007000000JN4wJ] |
Ken Fyten
made changes -
Fix Version/s | 3.1 [ 10312 ] | |
Fix Version/s | 3.0 [ 10241 ] |
Mark Collette
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Fix Version/s | 3.0.RC1 [ 10300 ] | |
Fix Version/s | 3.1 [ 10312 ] |
Ken Fyten
made changes -
Fix Version/s | 3.0 [ 10241 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |