Results 1 to 5 of 5

Thread: Grid filters race conditions - FiltersFeature

    You found a bug! We've classified it as EXTJS-7233 . We encourage you to continue the discussion and to find an acceptable workaround while we work on a permanent fix.
  1. #1
    Sencha User
    Join Date
    Dec 2009
    Location
    Gdansk, Poland
    Posts
    25
    Vote Rating
    0
      0  

    Default Grid filters race conditions - FiltersFeature

    I use infinite grid (so with "buffered" flag) with FiltersFeature applied on the grid.
    When I provide some conditions on filters it doesn't remove mask from the grid after page load operation sometimes (and doesn't show proper result received from server side).
    I analysed FiltersFeature code and found some source of the problem there. Below is the code from FiltersFeature that causes the issue:

    Code:
    reload : function () {        var me = this,
                store = me.view.getStore();
    
    
            if (me.local) {
                store.clearFilter(true);
                store.filterBy(me.getRecordFilter());
                store.sort();
            } else {
                me.deferredUpdate.cancel();
                if (store.buffered) {
                    store.pageMap.clear();  // THIS IS SOURCE OF THE PROBLEM
                }
                store.loadPage(1);
            }
        },
    I checked out how clear operation has been implemented and it fires "clear" event on pageMap that is based (in short) on HashMap (this event is fired on HashMap level). Because load operation is based on events also (I use direct provider and data filtering on server side) it causes data inconsistencies on store level during data loading (prefetching pages in advance) and cache page manipulation because of clear event.
    By default the store is constructed with flag clearOnPageLoad, so no any additional call of clear() method on page cache is necessary at all in such case.
    The workaround/fix is just to comment out store.pageMap.clear() call.

    Hope it helps...

  2. #2
    Sencha - Support Team scottmartin's Avatar
    Join Date
    Jul 2010
    Location
    Houston, Tx
    Posts
    9,404
    Vote Rating
    498
      0  

    Default

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

  3. #3
    Sencha User
    Join Date
    Oct 2012
    Posts
    30
    Vote Rating
    0
      0  

    Default

    Could I please know what is the solution to this bug ?
    Also The listMenu doesnt get rendered properly if the grid associated with it is hidden.. How do I resolve this ?

  4. #4
    Sencha User
    Join Date
    May 2015
    Posts
    38
    Vote Rating
    0
      0  

    Default

    Hi, i've the same problem but i'm unable to solve it. Can someone found some solution?

    My problem is that, having a buffered grid, when the request is "genuine" and i send to the server only those parameters:

    • _dc:1489768737406
    • page:139
    • start:69000
    • limit:500





    All works fine and i can go up and down with the scroll without the risk that it remain "stuck"...

    But when i apply an extraparam to the request:

    _dc:1489768891720
    denominazione:test
    page:1
    start:0
    limit:500

    when i go up and down there are a possibility of around 10% of encounter the bug of the "infinite loading mask", even if the request is correctly completed and i've the response from the server....


  5. #5
    Sencha User
    Join Date
    May 2015
    Posts
    38
    Vote Rating
    0
      0  

    Default

    I was wrong. I can send extra params, the problem seem to be that i do that, the server have to performs some "heavy" operations and queries, that make the request slower... and when this happen, i encounter the problem of the infinite loading mask....

Tags for this Thread

Posting Permissions

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