Details
-
Type: Bug
-
Status: Closed
-
Priority: 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?
<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
- All
- Comments
- History
- Activity
- Remote Attachments
- Subversion
Deryk Sinotte
created issue -
Deryk Sinotte
made changes -
Field | Original Value | New Value |
---|---|---|
Salesforce Case | [] | |
Fix Version/s | 2.0-Alpha3 [ 10032 ] |
Ken Fyten
made changes -
Salesforce Case | [] | |
Assignee | Deryk Sinotte [ deryk.sinotte ] |
Deryk Sinotte
made changes -
Assignee | Deryk Sinotte [ deryk.sinotte ] | Judy Guglielmin [ judy.guglielmin ] |
Deryk Sinotte
made changes -
Judy Guglielmin
made changes -
Assignee | Judy Guglielmin [ judy.guglielmin ] | Deryk Sinotte [ deryk.sinotte ] |
Deryk Sinotte
made changes -
Deryk Sinotte
made changes -
Deryk Sinotte
made changes -
Deryk Sinotte
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Ken Fyten
made changes -
Fix Version/s | 2.0.0 [ 10230 ] |
Ken Fyten
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |