icefaces and SendUpdates optimization

icefaces and SendUpdates optimization

if you encounter slow rendering (on icefaces tree for example) and generally when you code using icefaces framework, be sure that any html component you write has an id or has an icefaces component as parent.
In fact, icefaces client module send ajax request to the icefaces server module in aim to retrieve DOM changes. icefaces server module try to look for dom changes, and when each element has changed but have no id, it looks for its parent in the dom and insert all children of this parent as changed.

In my case i have a page with two elements: a <div>…</div> and just after an <ice:tree>…</ice:tree>
Unfortenatly, i don’t put an id to my <div>. So when i expand one node in the <ice:tree> i got all tree nodes sent as updates elements in the icefaces ajax response.
setting an id or converting your <div> to <ice:panelGroup> fix problem.

– method computing and sending updates: com.icesoft.faces.context.PushModeSerializer -> serialize(final Document document)
– to debug dom updates, add following in your web.xml:


Leave a Reply

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see