Current filter:
                                You should refresh the page.
                                Support Center
                                0
                                  • Hello!

                                    I was wondering if there was a way to put the GridView into a data-only callback mode. Right now every time there's an action on the grid (filtering, sorting, paging, etc) it executes an action that returns HTML containing the entire grid definition. This AJAX call is returning content that's 53,000 characters long when it really shouldn't be any more than 3,000. Not to mention the fact that the request is spending a long time on the server (~500ms) for a simple sort operation against an indexed sqlserver database. Sitting on the same server is another AJAX web grid which returns JSON data on callbacks. This returns a response that is 2,800 characters long and takes ~80ms for the same sort operation.

                                    I realize that simply returning JSON instead of a full grid definition would make a lot of the advanced server-side binding impossible, but I really don't need all that for this application. Is there a way to trim the fat?

                                    Thanks,

                                    Sean

                                You must  log in  or  register  to leave comments

                                1 Solution

                                0

                                Hello,

                                DevExpress MVC Grid View provides plenty of built-in functionalities. That's why its callback lasts longer than for a usual grid.
                                The filtering, sorting, paging functionality requires necessary callbacks to the server.
                                Please review our demos to find a convenient solution for your task. Additionally, you can send us your project, so we can review your scenario in greater detail to find a possible solution to improve performance.

                                I am looking forward to your reply.

                                Show all comments
                                • Sean Price 07.26.2013

                                  That doesn't really answer my question. If I were using a lot of the built-in functionalities I would expect a little extra time on the server. But this application is just a simple grid that does sorting, filtering, and paging. There's no reason that it should be over 5 times slower than another grid that is doing literally the same thing. I recognize that sorting, paging, and filtering obviously require callbacks to the server, but why does it need to send back the entire HTML definition of the grid? That makes no sense to me. Why isn't the response just returning JSON (or even XML) formatted data?

                                  I do understand that if I'm using a lot of the advanced server-side bindings that I should expect some extra time. But all I'm interested in right now is a fast grid that has some nice sorting, paging, and filtering capabilities. I just don't understand why there's so much overhead for what I consider to be a pretty simple operation.

                                • Hi Sean,

                                  By design, GridView extension is rendered on the server and the result (grid html) is sent to the client. Grid html can only be generated on the server-side.

                                  If the speed of the grid in your project does not satisfy your requirements, please send us a sample project so that we can examine it and find the root cause of the issue.

                                  I greatly appreciate your time and cooperation.

                                • Sean Price 07.26.2013

                                  I get that grid HTML can only be generated on the server, but does it need to be re-generated and sent out with every request?

                                  Here's a sample project. I created a brand new DevExpress MVC project and just added one view. It's pretty sparse but it shows you the layout of our project and gives you an idea how we're constructing the grid.

                                  In this example the response time for the grid went down to ~300ms, but the response time of the other grid also went down to ~50ms. Maybe you can show us how to optimize the configuration to boost performance.

                                • Hi Sean,

                                  >>I get that grid HTML can only be generated on the server, but does it need to be re-generated and sent out with every request?
                                  Yes, the grid's HTML should be regenerated on the server. GridView is a complex extension, its rows can contain templates, can be grouped, etc. Thats why the entire grid content is sent to the client on callbacks.

                                  I have also tested your sample on my side, see the attached video. As you can see from the video, the most of the request's time, the browser is waiting for a response, and the data reception doesn't take much time. So, to increase the GridView's performance, it is necessary to increase your server performance.

                                • Sean Price 07.26.2013

                                  I'm not sure how you can tell me the solution to the problem is to increase the server performance when I have another grid that's handling all of the sorting/paging/filtering in 1/6 the time. And even if I were to increase server performance it would increase server performance across the board, including the other grid, leaving the GridView extension still 5x slower.

                                  Honestly, that's the bottom line for me... if the source of the extra time is because of all of the features that the GridView extension has, is there a way for me to turn them off to speed up the grid? I can understand a bit of a performance hit if I was using all of those features but I'm not. I don't like the fact that the response is 30,000 characters long but if that's not a performance hit then I guess that doesn't bother me as much. But I just don't get why there's so much overhead to do a very simple operation.

                                  I have attached a video of the results I got from my test. The DevExpress GridView averaged 229ms for my tests, and the other grid averaged 47ms.

                                • Hi Sean,

                                  >> I have another grid that's handling all of the sorting/paging/filtering in 1/6 the time.
                                  I have not seen any other grids in the project you sent to us earlier, so I cannot compare it with the GridView extension and determine why the GridView extension is operating more slowly than your other grid. So, would you please send us a project with both these grids?

                                You must  log in  or  register  to leave comments

                                If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383

                                FOLLOW US

                                DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, along with high-performance HTML JS Mobile Frameworks for developers targeting iOS, Android and Windows Phone. Whether using WPF, Silverlight, ASP.NET, WinForms, HTML5 or Windows 8, DevExpress tools help you build and deliver your best in the shortest time possible.

                                Copyright © 1998-2014 Developer Express Inc.
                                All trademarks or registered trademarks are property of their respective owners