1

Extjs 4.2 にグリッドがあり、そのストアは以下のように構成されています。

var userStore = Ext.create('Ext.data.JsonStore', {
model: 'User',
proxy: {
    type: 'ajax',
    api: {
        create: '/pwbench/form/products/fctrmgmt/data.json',
        read: '/pwbench/form/products/fctrmgmt/data.json',
        update: '/pwbench/form/products/fctrmgmt/data.json',
        destroy: '/pwbench/form/products/fctrmgmt/data.json'
    },
    reader: {
        type: 'json'
    },
    writer: {
        type: 'json'
    }
},
autoLoad: true

});

グリッド内で [保存] をクリックすると、次のように構成されています。

handler: function() {
        var recordsArray = new Array();
        var dataRecords = new Array();
        recordsArray = grid.getStore().data.items;
        for (var i = 0; i < recordsArray.length; i++) {
            console.log(recordsArray[i].data);
            dataRecords.push(Ext.encode(recordsArray[i].data));
        }
        console.log(dataRecords.length);
        Ext.Ajax.request({
            url: 'mainpage.jsp',
            params: {
                records: dataRecords
            },
            success: function(response){
                var text = response.responseText;
                console.log(text);
                userStore.sync();
                userStore.load();

            }
        });

    }

ajaxリクエストによって送信されたデータを読み取ることができるJavaクラスがあり、ストアがデータをフェッチするために使用するdata.jsonファイルを上書きします。json ファイルは問題なく上書きされますが、問題は、同期後に userStore.load() を呼び出すと、変更を加える前に古いデータが表示されることです。グリッドを更新したり、ページ全体を更新したりしても、古いデータが表示されますが、Eclipse でプロジェクト全体を更新してページをリロードすると、上書きされた新しいデータが表示されます。

これはキャッシュの問題ですか?誰かが私に何が問題なのか教えてもらえますか?

4

1 に答える 1

0

同期の成功コールバックに負荷を入れる必要があります

userStore.sync({
        success: function() {
           userStore.load...
于 2014-05-30T13:17:45.230 に答える