Success! Looks like we've fixed this one. According to our records the fix was applied for EXTJS-9001 in a recent build.
  1. #1
    Sencha Premium Member jordandev's Avatar
    Join Date
    Feb 2011
    Location
    BC, Canada
    Posts
    42
    Vote Rating
    4
    jordandev is on a distinguished road

      0  

    Default Ext 4.2.0.489 - VERY slow tree grid on second load with bufferedrenderer plugin

    Ext 4.2.0.489 - VERY slow tree grid on second load with bufferedrenderer plugin


    REQUIRED INFORMATION
    Ext version tested:
    • Ext 4.2.0.489
    Browser versions tested against:
    • Firefox 19
    DOCTYPE tested against:
      • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">

    Description:
    • With a large tree grid the second load of the store is very slow. (multiple slow script popups)
    Steps to reproduce the problem:
    1. Have a tree grid with 5,000 records loaded using the new bufferedrenderer plugin. The first load is very quick (especially compared to 4.1 without the bufferedrenderer)
    2. Call store.load() on the tree grid's store
    3. You will see that it takes a minute or two of trying to remove the nodes one by one.
    4. First of all the suspend/resume layout calls are not being set correctly in the NodeInterface.removeAll function because of the line "treeStore = me.store && me.store.treeStore" because me.store.treeStore is undefined so it never calls treeStore.beginBulkRemove.
    5. But even with that fixed it will still fire individual remove events which each cause a refresh of the view.

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,647
    Vote Rating
    899
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      1  

    Default


    Thanks for the report! I have opened a bug in our bug tracker.

  3. #3
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Location
    Notts/Redwood City
    Posts
    30,546
    Vote Rating
    64
    Animal is a jewel in the rough Animal is a jewel in the rough Animal is a jewel in the rough

      1  

    Default


    More info needed really.

    The examples/tree/buffer-rendered-treegrid.html example works fine.

    I can grab a reference to the tree and reload its TreeStore, and it works.

  4. #4
    Sencha Premium Member jordandev's Avatar
    Join Date
    Feb 2011
    Location
    BC, Canada
    Posts
    42
    Vote Rating
    4
    jordandev is on a distinguished road

      0  

    Default


    In the examples/tree/buffer-rendered-treegrid.html example load in a set of 5000 records with no groups and you will get the problem.

    With the groups it only calls remove on the group that triggers a layout. If there are no groups it calls remove on every single node.

    Still happens in 4.2.0.663

  5. #5
    Sencha Premium Member CptS's Avatar
    Join Date
    May 2012
    Location
    Germany
    Posts
    39
    Vote Rating
    2
    CptS is on a distinguished road

      1  

    Default


    Same here (Ext 4.2.0.663).

    I think it's the remove action, which is called automatically before reload.
    If i remove all nodes with the removeAll function of the root node the load action is fast, but the removeAll function call takes more then 4 seconds (with a little bit more than 1000 records).

  6. #6
    Sencha Premium Member CptS's Avatar
    Join Date
    May 2012
    Location
    Germany
    Posts
    39
    Vote Rating
    2
    CptS is on a distinguished road

      0  

    Default Example

    Example


    Quote Originally Posted by Animal View Post
    More info needed really. [...]
    Look here for an example: http://jsfiddle.net/7fxpY/1/

    On first load it is fast, but if you click the reload button it is realy very slow (or sometimes the browser will freeze).

    I hope it helps.

  7. #7
    Sencha - Ext JS Dev Team Animal's Avatar
    Join Date
    Mar 2007
    Location
    Notts/Redwood City
    Posts
    30,546
    Vote Rating
    64
    Animal is a jewel in the rough Animal is a jewel in the rough Animal is a jewel in the rough

      0  

    Default


    Good find!

    In the recent refactor to enable buffered rendering we missed the removeAll pathway. That is still removing each child separately, and updating the view for each one.

    This will be fixed.

  8. #8
    Sencha Premium Member jordandev's Avatar
    Join Date
    Feb 2011
    Location
    BC, Canada
    Posts
    42
    Vote Rating
    4
    jordandev is on a distinguished road

      0  

    Default


    Awesome, thanks.

    Is there no easy workaround for this to only refresh the view once that could be done for now??

  9. #9
    Sencha Premium Member CptS's Avatar
    Join Date
    May 2012
    Location
    Germany
    Posts
    39
    Vote Rating
    2
    CptS is on a distinguished road

      0  

    Exclamation Not fixed in 4.2.1

    Not fixed in 4.2.1


    This is not fixed in 4.2.1: http://jsfiddle.net/7fxpY/7/.
    This demo is using http://docs.sencha.com/extjs/4.2.1/e...t-all-debug.js and it's the same issue.

  10. #10
    Sencha Premium Member jordandev's Avatar
    Join Date
    Feb 2011
    Location
    BC, Canada
    Posts
    42
    Vote Rating
    4
    jordandev is on a distinguished road

      0  

    Default


    Quote Originally Posted by CptS View Post
    This is not fixed in 4.2.1: http://jsfiddle.net/7fxpY/7/.
    This demo is using http://docs.sencha.com/extjs/4.2.1/e...t-all-debug.js and it's the same issue.
    4.2.1 seems to have resolved it in my case. That demo seems fine as well?