У меня есть JsonStore, который должен возвратиться из Запроса HTTP, который занимает больше времени, чем 30 секунд.
При установке свойства "тайм-аута" на любом, конфигурация JsonStore не переопределяет 30 вторых тайм-аутов, ни один не делает установку прокси (вместо того, чтобы просто установить свойство URL) и поместить тайм-аут на прокси.
Как я могу расширить этот тайм-аут?
(Я использую Расширение 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
})
});
Если вы хотите, чтобы время ожидания было одинаковым для всего приложения, установите его глобально в синглтоне Ext.Ajax
.
Ext.Ajax.timeout = 120000; //2 minutes
Если вы хотите, чтобы тайм-аут устанавливался по-другому только для одного запроса, вам нужно определить HttpProxy
в переменной и изменить одно из его свойств, прежде чем передавать его в JsonStore
конфиг. Свойство conn
принимает параметры, которые будут использоваться только для этого запроса.
var proxy = new Ext.data.HttpProxy({ url: "search-ajax.aspx" });
proxy.conn = { timeout: 120000 };