Creșterea timpului de așteptare a cererilor Ajax în ExtJs (Programare, Ajax, Extjs4, Timeout)

Kabeer a intrebat.

Există o singură configurație în biblioteca ExtJs pentru a crește timpul de așteptare a cererilor Ajax?

Am încercat următoarele două configurații, dar niciuna nu m-a ajutat:

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

Ext.Ajax.timeout = 60000;

3 răspunsuri
kevhender

Am folosit cele 2 pe care le-ați menționat, dar a trebuit, de asemenea, să le suprascriu pe acestea:

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

Actualizare pentru ExtJS 5:

Se pare că acum trebuie să setați timeout-ul Ext.Ajax folosind setTimeout() pentru ExtJS 5+, în loc să setați doar proprietatea:

Ext.Ajax.setTimeout(60000);

Comentarii

  • Ce se întâmplă cu limita de timp? Lucrez la calcularea unei rute și cred că va dura mult până la final… –  > Por Magno C.
Snehal Masne

A trebuit să fac mai jos unul :

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

Ton Voon.

Am constatat că aceasta este cea mai bună modificare pentru ExtJS 4 (testat pe 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);
  }
});

Acum puteți folosi Ext.Ajax.timeout și se vor schimba toate apelurile AJAX (nu știu despre trimiterea de formulare).