Ir al contenido principal

ExtJS - request aborted by TimeOut.

En ExtJS 3.2.4 al llamar un proceso PHP que tarda más de 30 segundos vía Ajax, el proceso se cancela automaticamente sin razón aparente.
handler:function() {
  var titulo="ENVIA FORMULARIO";
  if (frm.form.isValid()){
   var campo1  = Ext.getCmp('campo1').getValue();
   var campo2  = Ext.getCmp('campo2').getValue();
   var campo3 = Ext.getCmp('campo3').getValue();
   var conn = new Ext.data.Connection();
   Ext.MessageBox.wait('Por favor espere...', titulo);
   conn.request({
     url   : 'fileCRUD.php'
    , params: {
      'campo1' :campo1
     ,'campo2' :campo2
     ,'campo3' :campo3
    }
    , success: function (result, request ) {
     Ext.MessageBox.hide();
     var jsonData = Ext.util.JSON.decode(result.responseText);
     Ext.Msg.show({
      title: titulo,
      msg: jsonData.msg,
      buttons: Ext.Msg.OK,
      animEl: 'elId',
      icon: Ext.MessageBox.INFO
     });
     myAppStore.reload();
     myAppWin.close();
    } //end of success
    ,failure: function (result, request ) {
     Ext.MessageBox.hide();
     var jsonData = Ext.util.JSON.decode(result.responseText);
     Ext.Msg.show({
      title: 'Error: ' + titulo,
      msg: 'Hubo un error al realizar ' + titulo + jsonData.statusText,
      buttons: Ext.Msg.OK,
      animEl: 'elId',
      icon: Ext.MessageBox.ERROR
     });
    } //end of failure
   }); //end of conn.request
  } //end if
 } //end of handler
 
Request Ajax = Aborted

Despues de investigar un poco, descubrí que el proceso se cancela debido a que valor por default del timeOut (tiempo de espera) es de 30000 milisegundos .

Intente cambiar el valor del tiempo de espera (timeOut):

En todas las llamadas Ajax:

Ext.ajax.timeOut = 600000 /* No funciona */ 
Al realizar la conexión:
Ext.Connection.timeOut = 600000 /* No Funciona */ 
En el formulario:
Ext.Form.timeOut = 600000 /* No Funciona */ 
Sin embargo este valor no se modificaba a nivel global.

Despues de multiples intentos y pruebas, he logrado cambiar el valor del timeOut con la siguiente línea al inicio del programa.
 /* SI FUNCIONA */
Ext.data.Connection.prototype.timeout =30000; // 600 segundos; 5 minutos;

Espero que les sea de utilidad.

 Happy Coding!

Comentarios

Anónimo dijo…
Graaacias, esto lo he buscado por muucho tiempo
luish dijo…
hola amio, esto es lo que ando buscando, pq tengo un proceso de migracion de datos, dentro de ello tengo un update que demora mas de 32 segundos y me aborta. dime donde configuro la linea q publicaste?

ENORMEMENTE AGRADECIDO
luish dijo…
upsss haber si me respondes a mi correo lhilariocontreras@gmail.com

graciaa
Unknown dijo…
De ahora en adelante seras un hermano... :), todo el santo dia de ayer buscando el porque se aborta la petición, modifique casi todo el php .ini y nada... y en la mañana me pregunto... cuando se activa el "failure" de la llamada ajax... :) .. Gracias brother :)
pixelead0 dijo…
Hola @David que gusto que te haya sido de ayuda, yo también en su momento me tarde 2 días enteros tratando de resolverlo.
Anónimo dijo…
Gracias por el post, da gusto encontrar información sobre extjs bien explicada y en español :D

Entradas más populares de este blog

¿Por qué me gusta programar?

El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Cuando un músico escucha una melodía que acaba de componer o cuando un escultor retoca el último detalle de su obra maestra, está ante un logro personal, pero que fue hecho pensando en los demás. Está ante el fruto de su trabajo, que tuvo que realizar para pasar de una idea o modelo que estaba solo en su imaginación, a algo perceptible por los otros. Y ese logro causa una gran satisfacción. El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Es una actividad en la que una persona (el programador) debe plasmar una idea en un programa que alguien usará luego. Y es muy probable que esa idea sea algo totalmente novedoso, algo que nadie antes ha visto. Y ver esa idea traducida en software produce una sensación que únicamente un programador puede entender...

USA tu CELULAR como WEBCAM en el MSN

Este tutorial lo saque de CLUB MOTOROLA ARGENTINA. Es muy bueno, para los que no tenemos una webcam. Ademas de que le podemos sacar mas provecho a nuestor celular. Mi telefono es un C650, y funciono de maravilla. *********************** (Este tuto sirve solo para los motorola VXXX y algunos CXXX) 1º Bajan estos dos programas. Soft Cam junto con su Crack Motocam 2º Abren el motocam y le dan click a lo que esta en el cuadro rojo. 3º ponen todas esas configuraciones como indican las imagenes. 4º Le dan click a Ok 5º Instalan el soft cam y el crack 6º Mueven la palanquita que dice Stored a Live y la de Still a move 7º Vuelven al Motocam y le dan click a WebCam - Start 8º Ubican el cuadro dorado del SoftCam sobre lo q ve la camara. Y ya tienen su webcam en el msn!! Gracias capocha por la GRAN ayuda! Esto lo probe en un v3black; y un v635; anduvo en los dos. Hagan sus pruebas ustedes mismos. Cuenten como les fue y con q cel lo hicieron. No esperen q ande como cuando ponen el visor para s...

Migración de ext4 a BTRFS: Mi experiencia con Debian 12

Recientemente me embarqué en la aventura de migrar mi sistema Debian 12 del tradicional sistema de archivos ext4 a BTRFS. En este artículo, comparto mi experiencia completa, desde la planificación hasta la implementación final, incluyendo los obstáculos que encontré y cómo los superé. ¿Por qué migrar a BTRFS? Antes de entrar en los detalles técnicos, quiero explicar brevemente por qué decidí dar este salto: Instantáneas (snapshots) : La capacidad de crear puntos de restauración del sistema de forma rápida y eficiente. Compresión transparente : Ahorro de espacio en disco sin sacrificar rendimiento. Checksums para integridad : Protección automática contra la corrupción silenciosa de datos. Balanceo inteligente : Redistribución de datos que optimiza el uso del almacenamiento. Preparación para el futuro : BTRFS sigue evolucionando con nuevas características. Mi configuración inicial Mi sistema contaba con la siguiente estructura: /dev/sdb1 - 512M - Partición EFI /dev/sdb2 - 58.8G -...