I have a situation that has me absolutely perplexed.
I'm still using UltraWebGrid 10.2. I recently learned that the performance associated with this grid becomes unacceptable when the number of records in the grid approaches 100. I have a DropDownList column in the grid that provides the names of our employees when a cell in that column is clicked. The end user then selects from the list and the employee name is placed in the cell.
I've been doing some testing this morning and learned that a significant bottleneck occurs in the CellClickHandler for this drop-down grid column. The incredible thing (to me) is that it only occurs the FIRST TIME one of these cells is clicked! I have a JavaScript loop (MyGrid.Rows.length = 25) that looks like this inside this handler:
for (i=0;i<MyGrid.Rows.length;i++) {
--- Do Stuff ---
}
I capture the system time before entering the loop and again after the loop completes. For only 25 grid records, it takes appx. 4 seconds to execute the loop the FIRST TIME THROUGH! As more records are added to the grid, the response time increases geometrically. However, after the drop-down appears and I click another cell in the column, the same loop executes in only a few milliseconds.
When I first enter this loop, the logic recognizes that there are 25 records in the grid. I can't for the life of me understand why the huge performance difference after clicking a cell the first time. Can someone suggest why the performance is so bad the first time I click a cell in the column, but seems to clear up for subsequent clicks?
Thank you Alex for the follow up.
We are weighing our options regarding the future of the .net project that uses the UltraWebGrid. The existing Javascript I created behind my grids is very extensive and complex. It's my understanding that upgrading to the newer version of the grids would require rewriting this Javascript code behind the controls. That, together with the fact that the project may be replaced at the end of the current contract (approximately a year from now) means we may simply have to live with the poor performance of that first cell click for development cost reasons.
I do appreciate your prompt assistance and well stated results.
Hello megryan,
I have tested the same sample (the one from the forum thread discussed) with version 10.2 (build 2248) and IE 9 browser.
The results with this sample was similar to the ones described in your post – on first run the row iteration takes more than 10 seconds to complete. Then on second run the time drops to 3-4 seconds and on every other run remain the same.
In order to check for possible causes for such behavior I have tested the same sample with Firefox (latest) browser. The results there were very different – the execution time was around 1 second and remained the same in first and in any other runs.
This means the most possible reason for such behavior is the browser engine and especially its DOM manipulations part. It is known that IE browsers are slower in such operations.
Unfortunately both version 10.2 and “UltraWebGrid” control were retired 2 years ago and there will not be any code or performance optimizations enhancements for them.
What I can recommend you is to migrate to our ASP.NET Aikido grids or to IGNITEUI grids if possible.
Alex -
Unfortunately, downloading sample code is prohibited at this installation due to IA constraints. Do you recall if the issue identified at the thread
http://es.infragistics.com/community/forums/p/63032/320999.aspx#320999
was ever resolved? This sounds very close to my problem. Like the guys on this thread, my performance hit only occurs the first time I click in the cell.
Thank you for the information provided.
Can you test the sample attached in the mentioned in my previous reply forum post regarding similar issue and update us with the results?
You can also modify it in the needed way if it not matches exactly your actual sample.
This will allow us to test the behavior locally which is needed in such performance related issues.
Thanks Alex. In order,
1. Assembly ="Infragistics2.WebUI.UltraWebGrid.v10.2, Version=10.2.20102.2248, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"
2. I downloaded the 10.2 service release by going to your site and clicking the link
NetAdvantage for Web Client 2010 Vol. 2 - ASP.NET Service Release
3. The browser is IE9 Version 9.0.8112.16421
4. The grid is flat.
5. I use a grid value list column.
6. The Valuelist datamember (source) is a SQL stored procedure that returns 891 employee rows.
Unfortunately, I have no sample available.
Thanks for any suggestions. I must again re-iterate that only the first cell click bogs down. Subsequent clicks in the same column respond quickly.