Help with Scroller
Help with Scroller
Thank you for developing such a high-quality library. I really enjoy using it, but now that I'm attempting to employ some of the more advanced features, I'm having a difficult time understanding how they work. I swear I've done my due diligence here and scoured the various discussions, but I seem to have only confused myself further.
I'm trying to provide a responsive table (in both the design and performance sense) which currently tops out at roughly 50,000 rows.
It seemed to me that a combination of an Ajax data source along with server-side processing and the Scroller were the key to success. However, I'm unable to replicate the example behavior which is what I think I want (found at http://datatables.net/release-datatables/extras/Scroller/server-side_processing.html) that appears to query for data as the scrolling advances.
Here's my understanding of the options/features I am using:
All of the heavy-lifting is performed by the server (paging, filtering, sorting, etc.) which is evident in the various parameters sent to the server when querying for data. Makes sense, although I may be utilizing the total record fields incorrectly.
jQUery XHR made by the plugin to the server *one time only* to load the data. The parameters provided as a result using ``bServerSide: true`` are used tailor the query.
- sDom: frtiS ("S" being the important one)
Enable the Scroller. Use it with ``bDeferRender: true`` for maximum awesomeness.
- The Scroller itself
Requests chunks of data, more than is visible in the viewport, waiting a bit in between if the user is scrolling rapidly to prevent self-DOS attack. As scrolling continues additional requests are made to further populate the table.
I think I got the first three right and the last one wrong, because no matter what I do my page behaves like a single, massive Ajax request, then some processing of the data on the client side occurs, and I assume DataTables renders it as needed. Am I wrong in assuming the Scroller can "buffer" data in as needed? Does it require the table to be fully populated, and then it just does a better job of rendering than the ``bDeferRender`` option?
Thank you in advance for any assistance you or other forum members can provide.