增加 ExtJs 中的 Ajax 请求超时



ExtJs 库中是否有一个配置来增加 Ajax 请求超时?

我尝试了以下两种配置,但都没有帮助:

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

我使用了你提到的 2,但也必须覆盖这些:

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

ExtJS 5 的更新:

看起来您现在需要使用 ExtJS 5+ 的setTimeout()设置 Ext.Ajax 超时,而不仅仅是设置属性:

Ext.Ajax.setTimeout(60000);

我必须在下面做:

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 });

我发现这是 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 调用(不知道表单提交)。

此解决方案对我不起作用:

Ext.Ajax.timeout = 60000

然后我从 ExtJS 文档 (https://docs.sencha.com/extjs/7.5.0/classic/Ext.Ajax.html) 中找到了另一个解决方案。它与前面提到的@kevhender解决方案相同。这对我有用(ExtJS 版本 7.5):

Ext.Ajax.setTimeout(60000)

相关内容

  • 没有找到相关文章

最新更新