web-dev-qa-db-fra.com

Augmentation du délai de requête Ajax dans ExtJs

Existe-t-il une seule configuration dans la bibliothèque ExtJs permettant d’augmenter le délai de demande Ajax?

J'ai essayé de suivre deux configurations mais aucune n'a aidé:

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

Ext.Ajax.timeout = 60000;
11
Kabeer

J'ai utilisé les 2 que vous avez mentionnés, mais j'ai également dû les remplacer:

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

Mise à jour pour ExtJS 5:

Il semble que vous deviez maintenant définir le délai d'attente Ext.Ajax à l'aide de setTimeout() pour ExtJS 5+, au lieu de simplement définir la propriété:

Ext.Ajax.setTimeout(60000);
23
kevhender

Je devais faire ci-dessous un:

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

J'ai trouvé que c'était le meilleur changement pour ExtJS 4 (testé sur 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);
  }
});

Vous pouvez maintenant utiliser Ext.Ajax.timeout et cela changera tous les appels AJAX (je ne sais pas à propos de la soumission de formulaire).

0
Ton Voon