5

I am looking for a responsive JavaScript table which loads and handles atleast 20k records within 2 or 3 seconds and have many options:

  • CSV
  • Copy to clipboard
  • Export Excel, PDF, text, PNG, Word, JSON
  • Visible columns

It must be open source.

Here is the ones I have found:

2
  • This does not seem like a significant amount of data, even for a single second, which is probably why you say that you have "have many options". Can you give us more requirements? For instance, are these particularly huge records? What is wrong with the ones which you name? Btw, if it is taking that long, please show a progress indicator (ux.stackexchange.com)
    – Mawg
    Commented Oct 16, 2018 at 9:05
  • 1
    Also, you can consider a “virtual table”. That is a table which olds all 20k records in memory, but only displays 20 or 30, in a sliding window” on screen at any time. Since it is the display that takes real time & memory, this technique has been around for a long time.
    – Mawg
    Commented Nov 16, 2018 at 10:38

3 Answers 3

0

Datatables should able support large record, even server side. If you need help to transfer data over the wire faster, you might need streaming API, or some ajax method like comet.

jqGrid or other jQuery library should also do fine

If the loading over the wire is what you intended to ask, maybe change the title or ask another question.

Loading 20,000 should be the extremely maximum that should implement. I guess around 5k to 10k data loading in one time, could work for some task, and loading another batch while user browsing half of them. Test your scenario on bottom-line browser, or even mobile browser for the maximum row your want to achieve

0

I've used DataTables in the past. It has a good API and documentation. You might need to control how your 20k records load, than trying to find a tool that would load these 20k rows in one go.

7
  • why the performance is still not fixed in data-tables? is there is any work-around to overcome the performance issue? can any fix which has done in slick grid or other grid can be incorporated in datatables..20k is very less in an enterprise application..
    – Kathir
    Commented Aug 15, 2017 at 2:51
  • You mean there are users that need to read 20k of rows in one go? You should try to use pagination. Pagination should break the 20k in 40 or more pages, which will allow the page to load in 2 or 3 secs and the download button should download all the data.
    – Sonamor
    Commented Aug 15, 2017 at 7:26
  • 1
    Here you can find more about the pagination and the options you have. datatables.net/examples/basic_init/alt_pagination.html
    – Sonamor
    Commented Aug 15, 2017 at 10:28
  • pagination breaks the search in whole table....can we search in whole records even though pagination is set?
    – Kathir
    Commented Aug 16, 2017 at 3:15
  • On this demo it seems to be working fine... phpflow.com/php/…
    – Sonamor
    Commented Aug 16, 2017 at 6:43
0

DHTMLX grid is what I use for any javascript UI.

Combined with DHTMLX connector on the server side, I can render tables with millions of records in zero time.

How it works:

  • javascript grid is configured and initialized on the client, parameter smartrendering is set to ture and number of records to render is set to 100
  • as the grid loads it's first data, it will automatically ask the server for the number of rows that will need to be rendered and the list of first 100 records
  • when the user scrolls or filters, the requests are automatically forwarded to the server which immediately presents the limited set of data needed to be shown on the frontend

Note: DHTMLX is open source but there is also a slightly easier to use PRO solution you can buy.

I am not affiliated with DHTMLX.

2
  • "I can render tables with millions of records in zero time" ... O'rly ?
    – Mawg
    Commented Oct 16, 2018 at 9:06
  • :-) nope, just emperical testing
    – Harry
    Commented Oct 16, 2018 at 16:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.