[ 
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

        

Reply via email to