We have a dhtmlXTreeGrid(but only using it as a flat, non-tree grid) with a text input search box embedded in one of the column headers.
We’re using essentially the same code used in one of your examples for implementing a search box in the headers. The code works correctly, but the re-rendering after each onKeyup event is very slow.
To give you an example, the search operation in a grid with 70 rows takes about 5 seconds to re-render after each onkeyup event.
There are no obvious ways to significantly improve the speed of re-rendering. I can tell that the current approach is already near-optimal because the search becomes faster as the number rendered rows gets smaller.
We would like to use this approach of searching on a grid with over 1000 rows. Currently, it does not perform acceptably with 70 rows. We also plan to implement this approach on a tree grid as well.
Can you offer us some tips to make this type of hiding and showing of rows perform better? I can see that the actual rendering is what is taking time, as opposed to the search algorithm.
P.S. When I use smartRendering() with this approach, I run into childrenNodes for the rows that ahve not been rendered yet. Perhaps you can provide an additional function that will ignore rows that have not been rendered yet under smartRendering?
>>There are no obvious ways to significantly improve the speed of
>>I can tell that the current approach is already
near-optimal because the search becomes faster as the number rendered
rows gets smaller.
Actually it has a serious reserve for optimization, oncoming version of grid ( 1.5 ) will have a specialized filtering extension, with it filtering through 1000 rows dataset ( in SRND mode ) takes about 1 sec ( this seriously depends on used PC of course, but it not less than 5 times faster than solution used in existing samples )
Please contact us at firstname.lastname@example.org and provide your ref. number - we will send you this extension and samples of usage ( while it purposed to be used with next version of grid, it nearly fully compatible with current version as well )
>>P.S. When I use smartRendering() with this approach, I run into childrenNodes for the rows that ahve not been rendered yet.
New filtering extension solves such issue, it allow to filter in normal, smart rendering or paging modes.