Details
-
Type: Improvement
-
Status: Open
-
Priority: Major
-
Resolution: Unresolved
-
Affects Version/s: 4.0
-
Fix Version/s: None
-
Component/s: ACE-Components
-
Labels:None
-
Environment:Any
Description
Apparently the ace:tabSet needs to send an update related to the selectedIndex being changed on the server.
From the TabSetRenderer class this comment helps illuminate the issue a bit:
// If the server is trumping the browser's selectedIndex, by reverting
// it to the previous value, then the dom diff won't know to tell the
// browser, so we need to induce a script update
To "induce a script update", the following is sent back as part of every response. This chunk was taken from Firebug:
<update id="at_script"><![CDATA[<span id="at_script"><script>ice.ace.tabset.updateProperties("at",{"orientation":"top","showEffect":"","showEffectLength":0},{"devMode":false,"isClientSide":false,"aria":true,"selectedIndex":0,"safeIds":["at_safe_0",null,null],"disabledTabs":[],"overrideSelectedIndex":0});//-5673678767070767064</script></span>]]></update>
In general this is extra data and could be optimized. For example when doing Ajax Push calls where we want a small update coming back.
Ideally the tabSet could figure out if selectedIndex actually changed on the server, and only then send the script update. Or at the very least not send the script update if the "selectedIndex" attribute (which controls server side manipulation) isn't defined on the ace:tabSet component.
From the TabSetRenderer class this comment helps illuminate the issue a bit:
// If the server is trumping the browser's selectedIndex, by reverting
// it to the previous value, then the dom diff won't know to tell the
// browser, so we need to induce a script update
To "induce a script update", the following is sent back as part of every response. This chunk was taken from Firebug:
<update id="at_script"><![CDATA[<span id="at_script"><script>ice.ace.tabset.updateProperties("at",{"orientation":"top","showEffect":"","showEffectLength":0},{"devMode":false,"isClientSide":false,"aria":true,"selectedIndex":0,"safeIds":["at_safe_0",null,null],"disabledTabs":[],"overrideSelectedIndex":0});//-5673678767070767064</script></span>]]></update>
In general this is extra data and could be optimized. For example when doing Ajax Push calls where we want a small update coming back.
Ideally the tabSet could figure out if selectedIndex actually changed on the server, and only then send the script update. Or at the very least not send the script update if the "selectedIndex" attribute (which controls server side manipulation) isn't defined on the ace:tabSet component.
Issue Links
- depends on
-
ICE-9867 New ace:simpleTabSet component
- Open
Activity
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
This is something to be taken into consideration during development of the new ace:simpleTabSet component.