[ https://issues.apache.org/jira/browse/MYFACES-3330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leonardo Uribe resolved MYFACES-3330. ------------------------------------- Resolution: Fixed Fix Version/s: 2.1.4 2.0.10 > Generate small generated unique ids for components without explicit ids > ----------------------------------------------------------------------- > > Key: MYFACES-3330 > URL: https://issues.apache.org/jira/browse/MYFACES-3330 > Project: MyFaces Core > Issue Type: Sub-task > Components: JSR-314 > Reporter: Leonardo Uribe > Assignee: Leonardo Uribe > Fix For: 2.0.10, 2.1.4 > > > To ensure uniqueness, MyFaces uses a unique tag id more associated to a > facelet. The effect is each page ends with ids that are too long. For example: > j_id538961478_e4e33bc > It is necessary to provide another strategy to generate component ids as > small as possible. It should meet two conditions: > 1. They should be unique but > 2. The same ids should be generated each time the view is built for comply > with PSS algorithm. > How to solve it? > First create a "hierarchical counter" that can generate something like this: > j_id_1 > j_id_2 > j_id_3 > j_id_4 > j_id_5_1 > j_id_5_2_1 > j_id_5_2_2 > j_id_5_2_3 > j_id_5_3 > .... > j_id_z > Use the max radix available for a counter, because for a html id we can use: > 0123456789abcdefghijklmnopqrstuvwxyz > as valid characters. > This counter does not need to be related to the one used by MARK_CREATED, but > the same methods should be used to create additional hierarchies. > This change will improve performance too, because the generated pages will be > shorter and we can get rid two maps, so for each tag we remove a map.get > call. Additionally, with this strategy we can make PSS algorithm work better, > because the final > component ids will be more stable, and that's very important. There are some > corner use cases where to make it work it is required to enable > org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS and > org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE, but with > this change we can open the possibility to do not require them at all and > reduce even more the state size. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira