web-dev-qa-db-ja.com

ExtJsでのAjaxリクエストタイムアウトの増加

ExtJsライブラリにAjaxリクエストのタイムアウトを増やすための単一の構成がありますか?

次の2つの構成を試しましたが、どちらも役に立ちませんでした。

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

Ext.Ajax.timeout = 60000;
12
Kabeer

私はあなたが言及した2を使用しましたが、これらもオーバーライドする必要がありました。

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

ExtJS 5のアップデート:

プロパティを設定するだけでなく、ExtJS5以降ではsetTimeout()を使用してExt.Ajaxタイムアウトを設定する必要があるようです。

_Ext.Ajax.setTimeout(60000);
_
23
kevhender

私は1つ以下をしなければなりませんでした:

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
Snehal Masne

これがExtJS4(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呼び出し(フォーム送信についてはわかりません)が変更されます。

0
Ton Voon