如何覆盖Ext JS JsonStore超时?

ric*_*ent 16 json extjs

我有一个JsonStore需要从一个超过30秒的HTTP请求返回.

在JsonStore配置上设置"timeout"属性不会覆盖30秒超时,也不会设置代理(而不是仅设置url属性)并在代理上设置超时.

如何延长此超时?

(我正在使用Ext JS 3.1.1)

var ds = new Ext.data.JsonStore({
    autoSave:       true,
    method:         "POST",
    /*url:          "search-ajax.aspx",
    timeout:        120000,*/
    root:           "rows",
    totalProperty:  "results",
    idProperty:     "primarykeyvalue",
    proxy:      new Ext.data.HttpProxy({ url: "search-ajax.aspx", timeout: 120000 }),
    fields:     previewColumnConfig,
    baseParams: {
        Command:    "",
        ID:     primaryKeyValue,
        Entity: entityFullName,
        vetype: ValidationEntityType,
        vepk:       ValidationEntityPK,
        now:        (new Date()).getTime()
        },
    writer: new Ext.data.JsonWriter({
        encode:     true,
        listful:    false
        })
    });
Run Code Online (Sandbox Code Playgroud)

Jon*_*ian 36

如果您希望整个应用程序的超时时间相同,请在Ext.Ajax单例上全局设置.

Ext.Ajax.timeout = 120000; //2 minutes
Run Code Online (Sandbox Code Playgroud)

如果您希望仅在单个请求上以不同方式设置超时,则需要HttpProxy在var中定义并在将其传递到JsonStore配置之前修改其中一个属性.该conn属性仅提供用于该请求的选项.

var proxy = new Ext.data.HttpProxy({ url: "search-ajax.aspx" });
proxy.conn = { timeout: 120000 };
Run Code Online (Sandbox Code Playgroud)


Jor*_*ram 12

没有在var中定义代理或连接

proxy:      new Ext.data.HttpProxy(
              new Ext.data.Connection({
                          url: "search-ajax.aspx",
                          timeout: 120000 })),
Run Code Online (Sandbox Code Playgroud)