Page 2 of 2 FirstFirst 12
Results 11 to 17 of 17

Thread: Grid performance

  1. #11

    Default

    http://extjs.com/tutorial/basics-paging-grid-component

    Also, would a "DIV pool" help, instead of allocating at the time of request? Even possible?

    Seem's like would be easy to drop in.

    Templating a long list of rows has always been slow. A few years ago was doing that with trimpath templates, was astounded the overhead that templating added, when the query itself was very fast listing out on the page in plain text. Don't know which part of the templating was slow, the regex match or the allocating the rows.

    It's not a show stopper with paging. Page and get the user to narrow their search, search filters. They must be looking for something...

    Incidentally, the tutorial appears to be for an older version. Here is the update, you want to add it to the buttons config of the GridPanel (also, you want to tweak the display message position as indicated):

    Code:
           buttons:[(new Ext.PagingToolbar({
            store: store,
            pageSize: 25,
            autoHeight: false,
            height: 40,
            displayInfo: true ,
            displayMsg: '<p style="margin-top: 10px; margin-right: 20px;">Displaying results {0} - {1} of {2}</p>',
            emptyMsg: "No results to display"
        })
    Update: actually forget the margin tweak, it messes up the buttons by making the displayMsg box overlay them.

    Tweak the stylesheet instead to move it down:
    Code:
    .x-paging-info {
        position:absolute;
        top:25px;
        right: 0px;
        color:#444;
    }

  2. #12
    Sencha User
    Join Date
    Aug 2007
    Posts
    64

    Default

    paging dont care about large amount of columns
    paging dont care about printing (then i need to disable paging, start printing, and then use some trick to auto enable paging after print)

    so, paging is not the ultimate solution to grid performance weakness. Any other real way (with extjs) ?

  3. #13

    Default

    (Edit: I am working with 2.0 grids and noticed this is in 1.0. I will promote this elsewhere.)

    Quote Originally Posted by Rich Kucera View Post
    Also, would a "DIV pool" help, instead of allocating at the time of request? Even possible?
    Along these lines... has anyone written an adapter to load a grid from html in the page? What would be involved with this? In cases where I have anonymous data would it help the initial grid load performance?

    I'm using the GridPanel mainly for formatting and looks. It's loading two dimensional string arrays of HTML and takes a while to load initially. I know this isn't normally how the grid is supposed to function. Performance with 1000 rows is not acceptable for our current web app in terms of usability.

    I can build the tables and html for rendering the rows on the server if it would speed up the rendering? Any ideas?
    Last edited by punkrider; 31 Mar 2008 at 9:57 AM. Reason: Meant for 2.0

  4. #14
    Sencha User J.C. Bize's Avatar
    Join Date
    May 2007
    Location
    Bay Area, CA
    Posts
    179

    Default

    Quote Originally Posted by punkrider View Post
    (Edit: I am working with 2.0 grids and noticed this is in 1.0. I will promote this elsewhere.)

    Along these lines... has anyone written an adapter to load a grid from html in the page? What would be involved with this? In cases where I have anonymous data would it help the initial grid load performance?

    I'm using the GridPanel mainly for formatting and looks. It's loading two dimensional string arrays of HTML and takes a while to load initially. I know this isn't normally how the grid is supposed to function. Performance with 1000 rows is not acceptable for our current web app in terms of usability.

    I can build the tables and html for rendering the rows on the server if it would speed up the rendering? Any ideas?
    Take a look at examples/grid/from-markup.html. The sample is bundled with both Ext 1.x and 2.x.

    Cheers,
    JC

  5. #15
    Sencha User
    Join Date
    Nov 2007
    Posts
    20

    Default I can only recommend the excellend LiveGrid / BufferedGrid

    I can only recommend the excellend LiveGrid / BufferedGrid .

    http://extjs.com/forum/showthread.php?t=17791

    Not only can you "virtually" display zillions of rows, it's also lightning fast. The standard configuration buffer size is 300 records, but it seems to render only the rows which are visible.

  6. #16
    Sencha User
    Join Date
    Apr 2007
    Posts
    71

    Default

    LiveGrid is a pretty sweet extension however there is limitations to that grid and also some rendering issues. The first issue with LiveGrid is you can't have two LiveGrids sharing the same store. Only one of the grids render the data. As you scroll rapidly, the widget hammers the server until it catches up and depending on your server's performance and your network bandwidth this can make the process of getting the data a pain (there is a workaround for this). If you want to search for something that would normally be in the store your code has to send the request to the server.

    Like everything else, there is a time and place to use the LiveGrid and it is a great extension. However, what would be ideal is having the option to load up the store with all your records, and the grid would only render enough rows to meet the needs of the display. I have some code in progress that loads the store and as you scroll it renders the same amount of lines just scrolled to the end of the grid buffer and removes what has just scrolled out of sight. When you scroll back up it adds the rows back. Once the store is loaded, it takes maybe a second to load 200 rows and rendering as you scroll seems to keep up. The same approach could be applied for handling the columns. It would be great if this would be the approach the ExtJS team would take.

    In addition to the above, one could extend this to also have the same functionality that LiveGrid provides and load the store as you scroll. Or another option would be to load the first xxx (where xxx can be configured) records, throw an event to render them and then continue to load the rest of the records into the store.

  7. #17

    Default

    Hi, Gridpanel performance issue while loading 10000 rows, version 1.x

Page 2 of 2 FirstFirst 12

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •