javascript - ExtJS 当查询执行时间超过超时时捕获事件

标签 javascript extjs extjs4

我有一个超时时间为 5000 毫秒的 ajax TreeStore,我想在查询执行时间超过超时时间时捕获该事件。我该怎么做?

我的树商店:

Ext.define('Portal.store.ObjectsTreeStore', {
    extend: 'Ext.data.TreeStore',
    model: 'Portal.model.ObjectsTreeModel',
    proxy: {
        type: 'ajax',
        url: 'my/url.json',
        timeout: 5000, // 5 seconds
        reader: {
            type: 'json',
            successProperty: 'success',
            messageProperty: 'message'
        }
    },
    listeners: {
        beforeload: function() {
            console.log('1');    
        },
        load: function() {
            console.log('2');    
        },
        exception: function() {
            console.log('3');    
        }
    }
});

使用此代码,我仅在超出查询执行时间且请求取消时捕获 beforeload 事件。当一切正常时,我会捕获 beforeloadload

最佳答案

只需将异常监听器附加到代理而不是存储。参见示例:https://fiddle.sencha.com/#fiddle/psj

关于javascript - ExtJS 当查询执行时间超过超时时捕获事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208221/

相关文章:

javascript - ExtJs 4 : Using two copies of same component in one form

javascript - jQuery 库有冲突

javascript - jQuery on click 用于在未单击时触发动态元素

javascript - PhpStorm:不同的导入路径

java - 如何在JAVA中为Ext.data.JsonStore创建JSONObject?

javascript - 如果 Ext.override() 不存在,是否会创建一个新函数?

apache-flex - RIA 框架 : Which is best free opensource RIA Framework for Java Developers?

php - 通常在 ExtJS 应用程序上转义 HTML?

extjs4 - 如何在两个商店之间共享一个 AJAX 调用?

javascript - 将数据对象传递到另一个 View - React