2013-10-24 25 views
10

Esiste un'unica configurazione nella libreria ExtJs per aumentare il timeout della richiesta Ajax?Aumentare il timeout della richiesta Ajax negli ExtJ

Ho provato a seguito di due configurazioni, ma non ha aiutato:

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

Ext.Ajax.timeout = 60000; 

risposta

22

ho usato il 2 che lei ha citato, ma anche dovuto ignorare questi:

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

Aggiornamento per ExtJS 5:

Sembra che ora sia necessario impostare il timeout Ext.Ajax utilizzando setTimeout() per ExtJS 5+, anziché solo impostare la proprietà:

Ext.Ajax.setTimeout(60000); 
+0

Sembra funzionare. Grazie. – Kabeer

+0

E il limite di tempo? Sto lavorando a un calcolo del percorso e penso che ci vorrà molto per finire ... –

3

ho dovuto fare di sotto di 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 }); 
0

ho trovato questo è il miglior cambiamento per ExtJS 4 (testato su 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); 
    } 
}); 

Ora è possibile utilizzare Ext.Ajax.timeout e cambierà tutte le chiamate AJAX (non so sull'invio del modulo).