过滤器过快发布

时间:2012-12-03 17:07:26

标签: ajax extjs filter loading onchange

在ExtJS 4.1.3中,我们在文本字段上设置了过滤器,以运行文本字段的“onchange”。这是onchange函数:

var store = this.getStore();
value = field.getValue();

if (value.length > 0) {
    // Param name is ignored here since we use custom encoding in the proxy.
    // id is used by the Store to replace any previous filter
    store.filter({
        id: 'query',
        property: 'query',
        value: 'LegalName|#|#|' + value
    });

} else {
    store.clearFilter();
}

现在,我们遇到了一个问题,当我在文本字段中输入内容太快时,我收到错误并且卡在加载屏幕上。当我慢慢输入相同的东西时,它会起作用。考虑慢慢地输入它会使它工作,但是快速使它失败并且从服务器返回的数据在两个实例中是相同的,我假设它是ExtJS的问题。有人见过像这样的问题吗?什么是潜在的问题和修复。我无法弄清楚为什么它会破裂。这是我得到的踪迹:

Uncaught TypeError: Cannot convert null to object ext-all-debug.js:51752
    Ext.define.cancelAllPrefetches ext-all-debug.js:51752
    Ext.util.Event.Ext.extend.fire ext-all-debug.js:8638
    Ext.define.continueFireEvent ext-all-debug.js:25117
    Ext.define.fireEvent ext-all-debug.js:25095
    Ext.define.clear ext-all-debug.js:44718
    Base.implement.callParent ext-all-debug.js:3735
    Ext.define.clear ext-all-debug.js:47485
    Base.implement.callParent ext-all-debug.js:3735
    PageMap.Ext.Class.clear ext-all-debug.js:52358
    Ext.define.filter ext-all-debug.js:51377
    Ext.define.onTextfieldChange /TEST/app/view/ContractGrid.js?_dc=1354553533935:447
    Ext.util.Event.Ext.extend.fire ext-all-debug.js:8638
    Ext.define.continueFireEvent ext-all-debug.js:25117
    Ext.define.fireEvent ext-all-debug.js:25095
    Ext.override.fireEvent ext-all-debug.js:58382
    Ext.define.checkChange ext-all-debug.js:30310
    call ext-all-debug.js:8426

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我能够通过更改商店的缓冲区设置来解决问题。看起来我已经在商店中将'buffered'设置为true,一旦我将其删除,问题就消失了。