无法在ext-js app中更改Ajax超时

时间:2017-06-01 17:00:38

标签: javascript extjs extjs6

我正在尝试覆盖Documentum xCP应用程序中的ajax超时。

Ext.Ajax.setTimeout(120000)Ext.override(Ext.data.proxy.Ajax, { timeout:120000 })没有帮助。每次创建Ext.data.proxy.Ajax实例时,它都有timeout: 30000。也许它在我打电话后还原,但我不知道该怎么检查。

使用Ext.override我可以在Ext.data.proxy.Ajax原型中创建新属性,但现有属性不会更改。

我在Chrome中调试我的应用程序并使用app url中的special参数加载ext-all脚本的调试版本。

UPD: 如果我打电话

Ext.override(Ext.data.proxy.Ajax, { timeout:120004 })`

只有一次,然后

Ext.data.proxy.Ajax.prototype.getConfigurator().values["timeout"]==120004
Ext.data.proxy.Ajax.prototype.timeout==30000

30000用于Ext.data.proxy.Ajax.doRequest()

如果我再打电话:

Ext.override(Ext.data.proxy.Ajax, { timeout:120005 })`

然后

Ext.data.proxy.Ajax.prototype.getConfigurator().values["timeout"]==120004
Ext.data.proxy.Ajax.prototype.timeout==120005

3 个答案:

答案 0 :(得分:0)

我不熟悉Documentum xCP,但在使用Ext.js(v.4.1)的Web应用程序中,我使用以下代码段来更改一般超时:

    Ext.onReady(function(){
        Ext.Ajax.timeout = 150000;
    });

也许onReady事件是关键。

答案 1 :(得分:0)

如果要覆盖代理默认值,请使用:

Ext.define(null, {
    override: 'Ext.data.proxy.Server',
    config: {
        timeout: 120000
    }
});

答案 2 :(得分:0)

如果要覆盖代理默认值。将此课程置于 app / overrides 文件夹下。

Ext.define('Ext.overrides.data.proxy.Proxy', {
    override: 'Ext.data.proxy.Proxy',
    timeout: 10000,

    completeOperation: function(operation) {
        try {
            this.callParent(operation);
        } catch (e) {

        }
    }
});

或者添加您的视图模型,如下所示     Ext.define('Model',{         extend:'Ext.app.ViewModel',         别名:..

    stores: {
        xstore: {
            model: 'type'

            proxy: {
                type: 'ajax',
                timeout: 90000, // increasing time.
                url: url
            }
        }
    }
});