Buffering and Smart Rendering

I’ve implemented a report that gives the user access to 100s of thousands of record with a dozen or so columns. Everything seems to work well except the scrolling isn’t smooth. What I mean is: I’m using dynamic smart rendering, and when the user scrolls down they get a slight delay (very slight) before the rows are shown. Even in static smart rendering they get a delay as the grid draws the rows.



What I’d like to know is if Smart Rendering supports the concept of buffering where it will pre-fetch and pre-render a certain number of rows before and/or after the current rows that are visible to the user? I think this would give smart rendering a very polished feel, where right now it feels a bit clunky.

The delay in case of static smart-rendering created purposely, to prevent constant rendering while scrolling grid. You can try to decrease it in dhtmlxgrid.js , line 356
this._dLoadTimer=window.setTimeout(function(){
self._update_srnd_view();
}, 100);

>>What I’d like to know is if Smart Rendering supports the concept of buffering where it will pre-fetch and pre-render a certain number of rows
While working in dynamic mode, grid can request additional data from the server ( count of such data , can be set by second parameter of enableSmartRendering )
In static smart rendering mode, grid renders minimal necessary count of rows. While pre-rendering may be a good idea in some cases, in common case the performance is more critical.
Can be adjusted at
dhtmlxgrid_srnd.js , line 53
var max=min+this._get_view_size();
can be replaced with
var max=min+this._get_view_size()+50;
dhtmlxgrid.js , line 5377
max=Math.min(this._get_view_size(), this.rowsBuffer.length);
can be replaced with
max=Math.min(this._get_view_size()+50, this.rowsBuffer.length);

After additional investigation, we have deside to add such feature in next build of dhtmlxgrid.
If you need updated codebase - please contact us directly at support@dhtmlx.com