4.2.18 (Apr 2008)
DOM Synchronization Performance Improvement
Attribute Change Condenser
- An alternative DomChangeList implementation which will batch attribute changes so that only the most recent state is sent over the wire.
- All attribute changes sent from the server to the client as part of a single message block will be condensed.
- 100 elements, changing 4 properties for 100 iterations
- 4.2.17 – 4-5 seconds to process
- 4.2.18 – 1-2 seconds to process
- 100 elements, changing 4 properties for 100 iterations
- Element append/remove commands are not batched.
- All attribute changes sent from the server to the client as part of a single message block will be condensed.
To enable the condenser, edit the WEB-INF/nexaweb-server.xml file with the following:
<protocol-queues> <dom-change-list class="com.nexaweb.protocol.util.AttributeCollapsingDomChangeList"/> <!--<dom-change-list class="com.nexaweb.protocol.util.SimpleDomChangeList"/>--> </protocol-queues>
The old DomChangeList implementation is com.nexaweb.protocol.util.SimpleDomChangeList (in comments in the above XML).
The condenser removes negated attributes that are set by the server. This is observable when monitoring HTTP traffic over the push connection.
For example:
<set-attribute select="id('foo')"> <attribute name="text" value="one"/> </set-attribute> <set-attribute select="id('foo')"> <attribute name="text" value="two"/> </set-attribute>
will become
<set-attribute select="id('foo')"> <attribute name="text" value="two"/> </set-attribute>
PushConnection API changes
- Expose new methods on PushConnection to expose the batching programmatically allowing finer control over the timing of updates sent from the server to the client.
- PushConnection.freezeClientUpdates() – calling this method will postpone sending any updates to the client until unfreezeClientUpdates() is called
- PushConnection.unfreezeClientUpdates()
Tables with selectionMode="singleRow" no longer wrap
Tables with selectionMode="singleRow" no longer wrap vertically and scroll horizontally when navigating with arrow keys. Selecting the last row in the table, and then pressing the down arrow key no longer moves the row selection to the top row, instead the row selection will not change. Selecting the top row, and then pressing the up arrow key will not wrap the selection, but keep the selection in the first row.
Memory Leak Resolved
The memory leak occurred in data intensive UI where elements where created and then removed in the same <xm:modifications> block.
table, treeTable: New Attribute - "extendVerticalLines"
Indicates whether or not to extend the vertical lines into the table where there are no rows. The default is true.
Apps deployed to Tomcat 5.5.26 and 6.0.16 timeout prematurely
The cookie ID assigned by the Nexaweb Server contained a colon ":", which is not syntactically valid in the HTTP 1.1 cookies (see rfc 2109 http://www.ietf.org/rfc/rfc2109.txt). Tomcat 5.5.26 and 6.0.16 now strictly enforce this, which caused Nexaweb applications to timeout as soon as a request was made back to the server after initialization. The Nexaweb assigned cookie id now conforms to the HTTP 1.1 specification.
Defects Resolved
9470 | Server: Adding and removing rows causes server/client dom discrepancies |
9441 | Scroll bar display size is incorrect |
9423 | 712-5750571 - Server waiting for PushNotificationObject to return |
9333 | 712-5743259 712-5741394 - Apps deployed to Tomcat 5.5.26 and 6.0.16 timeout when a request is made to the server after the initialPage XAL file is requested |
9233 | 712-5682256 - Using columnSpan in gridLayout breaks display formatting |
9225 | 712-5392957 - Performance Issues between 3.x and 4.x |
9216 | 712-5661546 - Srolling within a table behaves inconsistently |
9190 | Memory leak by remove-element |
9189 | NullPointerException by remove-element |
9091 | gridLayout (gridPane) is NOT displayed correctly |
9022 | 712-5341311 - Tablelines extend to the height of table |
9020 | 712-5329019 - Gap in tree between the lines and the images |
7831 | 712-4503032 - Allow comboBox key selection to mirror HTML select element functionality |
9020 | 712-4272213 - Line up tree icons |