| Summary: | [Tree][Table] Improve tree/table performance and feedback | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [RT] RAP | Reporter: | Tim Buschtoens <tbuschto> | ||||
| Component: | RWT | Assignee: | Project Inbox <rap-inbox> | ||||
| Status: | RESOLVED FIXED | QA Contact: | |||||
| Severity: | enhancement | ||||||
| Priority: | P3 | CC: | t.haskes, tbuschto | ||||
| Version: | 1.4 | ||||||
| Target Milestone: | 1.5 M7 | ||||||
| Hardware: | All | ||||||
| OS: | All | ||||||
| Whiteboard: | plan-version=1.5 plan-theme=widgets plan-status=proposed | ||||||
| Bug Depends on: | 336169, 336362 | ||||||
| Bug Blocks: | |||||||
| Attachments: |
|
||||||
|
Description
Tim Buschtoens
In case of virtual tree/table the performance when scrolling really fast could be improved by sending less topItemIndex updates to the server. Currently they are sent every 400ms, but when scrolling so fast that the resolved items practically guarenteed to be no longer visible when arraving, it only slows down the rendering. The timer should be prolonged if the scroll-speed (item-delta / time) is very high. I commited several changes regarding this Bug to CVS HEAD: * Html-elements are now re-used based on their role, so always the same element is used to render the same cell label/image/background. This saves some re-renderings. * Instead of hiding elements with display:none, they are set back to the neutral value of their role. This is faster than setting display, and saves one dom access. * During vertical scrolling, the bounds and a couple of other style-properties are not re-rendered since they are not changing. * In internet explorer, innerText is now used instead of innerHTML, which is somewhat faster and does the escaping for us. * Escaped texts are cached in TreeItem. * IE does not attempt to render text-shadow, wich is unsupported anyway. I did not yet address the issue of rendering virtual tables/trees, or those with a lot of columns (see previous comments). Created attachment 211515 [details]
IE8 Table profiling
By far the biggest junk remaining (ignoring virtual and vertically huge tables), is the styling of the label cells - font, color and text decoration. This is frustrating, as these values are very often identical and wouldn't have to be rendered. As a solution, the tree would have to detect the default values (this is the tricky part), and keep track which cells are unchanged from these values.
*** Bug 313291 has been marked as a duplicate of this bug. *** |