This configuration parameter is experimental and may not be supported in future ICEfaces releases.
The parameter org.icefaces.diffConfig accepts a space-separated list of DOM diff fine tuning parameters as key=value pairs. There is currently a single key/value option that is supported. You can set the key maxDiffs to an integer that represents the maximum number of individual updates to process before they are coalesced into a single large update. This can improve performance on some browsers when the number of smaller, individual updates gets large.
<context-param>
<param-name>org.icefaces.diffConfig</param-name>
<param-value>maxDiffs=500</param-value>
</context-param>
To dump a representation of the DOM before and after the diff is calculated, us the debugAB setting:
<context-param>
<param-name>org.icefaces.diffConfig</param-name>
<param-value>debugAB</param-value>
</context-param>
These can be extracted from the log via csplit or copy and paste in a text editor. For instance, using Tomcat on Mac OS X to obtain the third diff in the log:
csplit -f DOM logs/catalina.out %nodeDiff--------------debugA% {3} /nodeDiff--------------debugB/ /nodeDiff--------------------/; opendiff DOM00 DOM01
To enable generation of DOM attribute updates add the att setting. This setting can reduce quite significantly the size of the updates.
<context-param>
<param-name>org.icefaces.diffConfig</param-name>
<param-value>att</param-value>
</context-param>
Unfortunately the attribute updates are not always reliable, the order in which the updates are applied can make them interfere with each other resulting in unexpected results.