我有一个JsonStore,需要从一个超过30秒的超文本传输协议请求中返回。
在任一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
})
});
发布于 2010-02-13 07:33:39
如果您希望整个应用程序的超时时间相同,请在Ext.Ajax
单例上全局设置它。
Ext.Ajax.timeout = 120000; //2 minutes
如果您希望只针对单个请求设置不同的超时,那么在将其传递到JsonStore
配置之前,您需要在var中定义HttpProxy
并修改它的一个属性。conn
属性接受仅用于该请求的选项。
var proxy = new Ext.data.HttpProxy({ url: "search-ajax.aspx" });
proxy.conn = { timeout: 120000 };
发布于 2011-03-04 18:46:31
而不在var中定义代理或连接
proxy: new Ext.data.HttpProxy(
new Ext.data.Connection({
url: "search-ajax.aspx",
timeout: 120000 })),
发布于 2012-08-28 16:06:31
您可以定义:
var proxy1 = new Ext.data.HttpProxy(
{
url: 'yourUrl',
reader: {
type: 'json',
root: 'items',
totalProperty: 'total'
}
});
proxy1.timeout = 600000;
它将阅读器包含在代理中
https://stackoverflow.com/questions/2253592
复制相似问题