Thank you for reporting this bug. We will make it our priority to review this report.
  1. #1
    Sencha User
    Join Date
    Sep 2011
    Posts
    5
    Vote Rating
    1
    emixion is on a distinguished road

      0  

    Default [4.1] duplicate ajax requests by store with autoSync on record removal

    [4.1] duplicate ajax requests by store with autoSync on record removal


    REQUIRED INFORMATION

    Ext version tested:
    • Ext 4.1.1
    • Ext 4.1.0
    Browser versions tested against:
    • FF 14 (firebug 1.10.2 installed)
    • Chrome 21
    DOCTYPE tested against:
    • XHTML 1.0 Transitional
    Description:
    • When removing n rows quickly after each other, (n + n-1 + n-2 + ... + 1) DELETE requests are fired at the REST server.
    Steps to reproduce the problem:
    • Situation: textbook gridpanel and REST store with autoSync enabled
    • Remove 3 rows immediately after eachother
    • This REST server in this case responds with either {success: true, data: [], msg: 'some msg'} or {success: false, data: [], msg: 'error msg'}
    The result that was expected:
    • 3 DELETE XHR requests are fired at the REST server. Concurrently or serially, I don't care.
    The result that occurs instead:
    • 3+2+1 = 6 DELETE XHR requests are fired. 3 for one record, 2 for the second and 1 for the last.
    Test Case:
    PHP Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <
    html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl" dir="ltr">
    <
    head>
        <
    meta http-equiv="content-type" content="text/html; charset=utf-8" />


        <
    script type="text/javascript" src="../js/extjs-4.1.1/ext-all-debug-w-comments.js"></script>
        <link rel="stylesheet" type="text/css" href="../js/extjs-4.1.1/resources/css/ext-all.css" />
        
        <script type="text/javascript">
        
        var teststore, testgrid;
        
        Ext.onReady(function() {
        
            Ext.define('part', {
                extend: 'Ext.data.Model'
                ,fields: [
                    {name: 'id', type: 'int'}
                    ,{name: 'title', type: 'string'}
                ]
            }); 
            
            teststore = Ext.create('Ext.data.Store', {
                model: 'part',


                autoSync: true
                ,autoLoad: true
                ,remoteFilter: true
                ,proxy: {
                    type: 'rest'
                    ,url: 'someUrl'
                    ,reader: {
                        type: 'json'
                        ,root: 'data'
                    }
                    ,writer: {
                        type: 'json'
                    }
                }
            });
            
            testgrid = Ext.create('Ext.grid.Panel', {
                title: 'test'
                ,renderTo: 'testgridcnt'

                ,store: teststore
                ,columns: [
                    {text: 'id', dataIndex: 'id'}
                    ,{text: 'title', dataIndex: 'title'}
                ]
            });
            
        });
        </script>
    </head>
    <body>
    <div id="testgridcnt"></div>
    <a href="#" onclick="teststore.removeAt(1);teststore.removeAt(2);teststore.removeAt(3);return false;">test me!</a>
    </body>
    </html> 
    HELPFUL INFORMATION

    Screenshot:
    • attached
    Debugging already done:
    • none
    Possible fix:
    • This might be similar to EXTJSIV-4335, which is supposed to be fixed in 4.1.1?
    • suspend and resumeAutosync works, but is not an option.
    Additional CSS used:
    • only default ext-all.css
    Operating System:
    • Fedora 16

  2. #2
    Sencha - Ext JS Dev Team evant's Avatar
    Join Date
    Apr 2007
    Location
    Sydney, Australia
    Posts
    16,645
    Vote Rating
    583
    evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute evant has a reputation beyond repute

      0  

    Default


    Certainly we could improve some of that code to be smarter, but it's not really what autoSync is intended for.
    Evan Trimboli
    Sencha Developer
    Twitter - @evantrimboli
    Don't be afraid of the source code!

  3. #3
    Sencha User
    Join Date
    Dec 2010
    Posts
    3
    Vote Rating
    0
    ferrosoftware is on a distinguished road

      0  

    Default


    Create, Update - the same behaviour

Thread Participants: 2