Details

    • Sub-task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 2.0.10, 2.1.4
    • JSR-314
    • None

    Description

      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.

      Attachments

        Activity

          People

            lu4242 Leonardo Uribe
            lu4242 Leonardo Uribe
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: