Uncaught RangeError: Maximum call stack size exceeded when calling fnGetData()

Uncaught RangeError: Maximum call stack size exceeded when calling fnGetData()

micropormicropor Posts: 1Questions: 1Answers: 0
edited December 2014 in Free community support

I am trying to download a large table (16 columns by >130k rows) containing numerical and string values as a .csv file. I tried using the table tools extension but as this just downloaded zero byte csv I tried doing it myself by getting all the rows of the table via fnGetData. This works fine and dandy with relatively small tables. When the size of the table increases over a certain size the above mentioned error occurs.
The call stack:

Uncaught RangeError: Maximum call stack size exceeded jquery.dataTables.min.js:formatted:1702
q jquery.dataTables.min.js:formatted:1725
q.flatten jquery.dataTables.min.js:formatted:2469
(anonymous function) jquery.dataTables.min.js:formatted:1782
q.extend.g jquery.dataTables.min.js:formatted:1465
p.fnGetData test.html:377
outputRows test.html:339
(anonymous function) jquery.min.js:3
n.event.dispatch jquery.min.js:3 n.event.add.r.handle

I am using datatable version 1.10.2, jquery version 2.1.1, jquery ui version 1.11.2 and datatables.bootstrap.

Sure I could just recalculate the table data but this seems totally unnecessary. Maybe one of you can tell me why this simple operation causes this error. I do not have any control over server side settings and have to do all the calculation and download operations client-side.



  • allanallan Posts: 60,304Questions: 1Answers: 9,791 Site admin

    With that many rows, without question I would suggest you do the file creation server-side. The Flash / Javascript communication bridge can be really slow at the best of times, and it sounds like you might be taking it to its limit (and beyond) for the data that can be passed over it in a reasonable amount of time.

    Certainly I know from experience that large files can take the Flash export ages to create - hence my recommendation!


This discussion has been closed.