ICEfaces
  1. ICEfaces
  2. ICE-5659

Rendering of UIDebug component causes full page reload.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.0-Alpha2
    • Fix Version/s: 2.0-Alpha3, 2.0.0
    • Component/s: Framework
    • Labels:
      None
    • Environment:
      ICEfaces 2 JSF 2

      Description

      Using the ui:debug component in the following way:

      <h:body>

        <ui:debug hotkey="p" rendered="true"/>

      triggers a full page reload. The rendered markup of the debug is a <script> node, whose content change between renders due to an embedded URL that has a counter or timestamp that updates with each request. Because the DOM diff algorithm detects this change, it tries to find the closest parent with an id which, in the test case, ends up being the <html>. If we detect that the html node is involved, we simply send a window.location.reload() message back to the client. This is not the Ajax behaviour we'd like to have.

      Possible strategies to solving this:

      - Request that mojarra add ID to facelet debug output. Since script tags are not allowed to have ids for some reason, it would need to sit in a div or some other legitimate container.
      - Reparent ui:debug ourselves when added to component tree under an element with an id. Basically this is the same as above just that we do the work.
      - Provide our own ice:debug component as a replacement.

      The bigger picture here is: What to do instead of reload when legitimate changes occur under the body?

        Issue Links

          Activity

            People

            • Assignee:
              Deryk Sinotte
              Reporter:
              Deryk Sinotte
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: