Увеличение времени ожидания запроса Ajax в ExtJs - программирование
Подтвердить что ты не робот

Увеличение времени ожидания запроса Ajax в ExtJs

Есть ли одна отдельная конфигурация в библиотеке ExtJs для увеличения времени ожидания запроса Ajax?

Я попытался выполнить две конфигурации, но не помог:

Ext.override(Ext.data.Connection, {
    timeout: 60000
});

Ext.Ajax.timeout = 60000;
4b9b3361

Ответ 1

Я использовал 2, которые вы упомянули, но также должен был переопределить их:

Ext.override(Ext.data.proxy.Ajax, { timeout: 60000 });
Ext.override(Ext.form.action.Action, { timeout: 60 });

Обновление для ExtJS 5:

Похоже, вам нужно установить тайм-аут Ext.Ajax, используя setTimeout() для ExtJS 5+, а не просто установить свойство:

Ext.Ajax.setTimeout(60000);

Ответ 2

Мне нужно было сделать ниже одного:

Ext.Ajax.timeout= 60000; 
Ext.override(Ext.form.Basic, { timeout: Ext.Ajax.timeout / 1000 });
Ext.override(Ext.data.proxy.Server, { timeout: Ext.Ajax.timeout });
Ext.override(Ext.data.Connection, { timeout: Ext.Ajax.timeout });

Ответ 3

Я нашел, что это лучшее изменение для ExtJS 4 (проверено в 4.2.3):

// Connection uses its own timeout value hardcoded in ExtJS - we remove it so that Ext.data.Connection will then
// fallback to using Ext.Ajax.timeout, thus giving a single place for setting the timeout
// Bonus: you can change this at runtime
Ext.define('Monitoring.overrides.Connection', {
  override: 'Ext.data.Connection',
  constructor: function() {
    delete this.timeout;
    this.callParent(arguments);
  }
});
Ext.define('Monitoring.overrides.ProxyServer', {
  override: 'Ext.data.proxy.Server',
  constructor: function() {
    delete this.timeout;
    this.callParent(arguments);
  }
});

Теперь вы можете использовать Ext.Ajax.timeout, и он изменит все вызовы AJAX (не знаю о представлении формы).