I have a page with pretty extensive Hierarchical grid. It takes about 30 - 40 seconds to load on the browser end.
One way to improve loading time is to create paging.. what are other methods to improve performance/shorten loading time ?
Thanks.
Hello mcseidel,
Thank you for contacting Infragistics.
Concerning performance of the WebHierarchicalDataGrid I recommend you see the following behaviors:
Paging: http://help.infragistics.com/Help/NetAdvantage/ASPNET/2012.2/CLR4.0/html/WebHierarchicalDataGrid_Enabling_Paging.html
Load On Demand: http://help.infragistics.com/Help/NetAdvantage/ASPNET/2012.2/CLR4.0/html/WebHierarchicalDataGrid_Load_On_Demand.html
Please let me know if you have any further questions concerning this matter.
Sincerely, Mike P. Developer Support Engineer II Infragistics, Inc. www.infragistics.com
I am following up to see if the information provided has resolved this matter.
Please let me know if I may be of further assistance with this matter.
Sorry for mistake, attached markup file, EnabledDataViewState set to default value : False
Thank you for the update. I have taken a look at your markup and I have a few follow up questions concerning this matter. Have you tried setting the InitialDataBindDepth to -1? This will make sure all the records load initially instead of on expand. Have you tried setting EnableAjax to true? This will make it so when the grid causes a postback it will postback for just the grid and not the entire page. Do you have any other browser options than IE8? Like IE9 or a newer browser?
The InitialDataBindDepth set to 1 so all child grids will be rendered to browser and there won't be any postbacks... seems like -1 would do the same in our case.
Enable Adjux - yes I did try it.. actually main issue is the time of initial loading , so the goal is to figure out how to reduce grid footprint .
Here what I would like to know : when page grid ( say the biggest child grid) it does mean that only record in the current page will be rendered to the browser, and it goes for any next set to the server, right ?
Anyway, again is there a way to minimized javascript footprint that were sent to browser ?
btw IE9 perform much better then IE8 but we can direct users to it. The best performance is on Firefox, but Chrome somehow is the same as IE8..
Hello mcsidel,
Thank you for the update. With paging that is correct only what needs to be shown is rendered. The behaviors the improve performance for the WebHierarchicalDataGrid are paging and load on demand. After that you can get into custom behaviors like manual load on demand and custom paging where you would on the server only retrieve and send down the records that are going to be rendered instead of the whole datasource. This would be done through for example your sql select command you limit the number of records you retrieve and send down client side.
Would limiting records through setting filter to data source ( typed dataset in my case) will have the same effect as manually paging and limiting number of records by setting parameters on select statement ?
While trying to avoid premature optimization scenarios I'm trying to find a culprit... I do not believe that it is network, running browser on the server producing almost the same results.... as for other controls - page has some but it's just another grid with really small data set and drop downs and text boxes ( you've seen the page ), what I'll do when chance is create page with just this grid and see how it perform... we can close this thread for now but rather get back to it when page with single grid results will be available .
Thank you for the update. Performance can depend on a few things amount them are the browser, for example IE8 has issues with JavaScript and that can cause slow down. What other elements you have on the page also makes a difference if you have a lot of tables or a few large tables this can also cause some slowdown. Your network also has an impact on this, I would recommend using IE dev tools or something similar to profile you website and see what kind of responses you are getting. For displaying data you have to remember that each cell in a row is a record and a separate element that needs to be rendered so the number or records you have showing is the number of columns you have multiplied by the number of rows. I have created WebHierarchicalDataGrid’s with more records you have displaying and have run it in IE8 and haven’t seen issues with performance. This leads me to believe your issue is related more to your network and the other items/elements you have on your page.
I still did not have a chance to get back to this part of the project... Here I would like to know a bit more about paging :
Say I have 1500 child records about 100 per child grid. Say I page by 10 records every child grid. So the child grid will be bind to 100 records, only 10 displayed at once, when I click next then 10 other records displayed ... is that 10 records choose when grid gets bound... so 90 records not getting rendered to the browser and only 10 do...
If ajax is enabled so only partial update happen and if it is only 10 records why it does take so long ( about 8 sec ) ?
I am following up to see how you are progressing with this matter.
Thank you for the update. I will follow up in a few business days to see how you are progressing with this matter.