-
12 Oct 2009 2:55 AM #621
Hi,
I have a LiveGrid with about 500.000 rows or higher. If a user try select a large amount of rows I get a script error : "A script on this page may be busy or may not responded". The CPU on the client side is 100% busy.
Is there a way to disable multiple row selection when a user try to select for instance more than 1000 rows?
Thanks.
-
12 Oct 2009 3:01 AM #622
-
12 Oct 2009 4:03 AM #623
Hi Mind,
Here my live grid parameters:
buffer.size=60
near.limit=10
I am trying to do some tests under Ext2.2.1 and 3.0.0. The problems is here on the both releases.
Yes, the problem still remains. See attached screenshot of my demo grid page with 2 million rows.
I can select about 20.000 rows max without errors (It takes approximatively 10seconds). The grid try to keep in memory all selected rows that is why the browser is busy.
A solution will be to disable multi row selection if selection size is greater than for instance 1000 or 5000 rows. But I don't know if it is possible.
-
12 Oct 2009 4:28 AM #624
Mind,
Just for your information I also have disabled the show load mask when I use the vertical scrollbar : as my json flow is returned by the server side in about 60ms, the buffer refresh on screen is very quick and more user friendly. The load mask take too much time to be displayed.
However I keep the load mask when I sort or filter the grid data especially if I have a lot of rows
-
12 Oct 2009 6:09 AM #625
I just checked the selection with appr. 45000 rows - now problem whatsoever so I still assume it has to deal with your hardware - I'm using a Win XP, FF3.5.3, Dual Core 2,4 with 3 Gb RAM - I notice some delay but no warnings from FF whatsoever.
-
12 Oct 2009 6:14 AM #626
-
12 Oct 2009 6:26 AM #627
-
12 Oct 2009 6:29 AM #628
That would be an option - I'm planning a kind of "view selection model" where only those rows can be selected which are currently in the view (or at least in the buffer) - that should help (if your buffersize doesn't tend to be ~ 50000
)
-
12 Oct 2009 6:58 AM #629
-
14 Oct 2009 2:48 AM #630
So, I have done a quick fix to solve this problem by adding a test in selectRange function rowSelectionModel object:
Code:selectRange : function(startRow, endRow, keepExisting) { if (this.locked) { return; } if (!keepExisting) { this.clearSelections(); } var totalSelected = Math.abs(endRow-startRow); if(this.maxSelectedRow && totalSelected>this.maxSelectedRow) { this.clearSelections(); this.displayMaxSelectedRow(this.maxSelectedRow); return; } if (startRow <= endRow) { for (var i = startRow; i <= endRow; i++) { this.selectRow(i, true); } } else { for (var i = startRow; i >= endRow; i--) { this.selectRow(i, true); } } }


Reply With Quote
