Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

818
Vistas
Establecer tiempo de espera para ajax (jQuery)
$.ajax({ url: "test.html", error: function(){ //do something }, success: function(){ //do something } });

A veces la función de success funciona bien, a veces no.

¿Cómo configuro el tiempo de espera para esta solicitud de ajax? Por ejemplo, 3 segundos, si se agota el tiempo, muestra un error.

El problema es que la solicitud ajax congela el bloque hasta que finaliza. Si el servidor está inactivo por un tiempo, nunca terminará.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Lea la documentación de $.ajax , este es un tema cubierto.

 $.ajax({ url: "test.html", error: function(){ // will fire when timeout is reached }, success: function(){ //do something }, timeout: 3000 // sets timeout to 3 seconds });

Puede ver qué tipo de error se produjo accediendo al parámetro textStatus del error: function(jqXHR, textStatus, errorThrown) . Las opciones son "tiempo de espera", "error", "abortar" y "error de análisis".

over 4 years ago · Santiago Trujillo Denunciar

0

Aquí hay algunos ejemplos que demuestran cómo configurar y detectar tiempos de espera en los paradigmas antiguo y nuevo de jQuery.

Demo en vivo

Promesa con jQuery 1.8+

 Promise.resolve( $.ajax({ url: '/getData', timeout:3000 //3 second timeout }) ).then(function(){ //do something }).catch(function(e) { if(e.statusText == 'timeout') { alert('Native Promise: Failed from timeout'); //do something. Try again perhaps? } });

jQuery 1.8+

 $.ajax({ url: '/getData', timeout:3000 //3 second timeout }).done(function(){ //do something }).fail(function(jqXHR, textStatus){ if(textStatus === 'timeout') { alert('Failed from timeout'); //do something. Try again perhaps? } });​

jQuery <= 1.7.2

 $.ajax({ url: '/getData', error: function(jqXHR, textStatus){ if(textStatus === 'timeout') { alert('Failed from timeout'); //do something. Try again perhaps? } }, success: function(){ //do something }, timeout:3000 //3 second timeout });

Tenga en cuenta que el parámetro textStatus (o jqXHR.statusText ) le permitirá saber cuál fue el error. Esto puede ser útil si desea saber si la falla se debió a un tiempo de espera.

error (jqXHR, estado de texto, error lanzado)

Una función que se llamará si la solicitud falla. La función recibe tres argumentos: el objeto jqXHR (en jQuery 1.4.x, XMLHttpRequest), una cadena que describe el tipo de error que ocurrió y un objeto de excepción opcional, si ocurrió. Los valores posibles para el segundo argumento (además de nulo) son "timeout", "error", "abort" y "parsererror". Cuando se produce un error HTTP, errorThrown recibe la parte textual del estado HTTP, como "No encontrado" o "Error interno del servidor". A partir de jQuery 1.5, la configuración de errores puede aceptar una variedad de funciones. Cada función será llamada a su vez. Nota: Este controlador no se llama para secuencias de comandos entre dominios y solicitudes JSONP.

origen: http://api.jquery.com/jQuery.ajax/

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar la configuración de tiempo de timeout en las opciones de ajax de esta manera:

 $.ajax({ url: "test.html", timeout: 3000, error: function(){ //do something }, success: function(){ //do something } });

Lea todo sobre las opciones de ajax aquí: http://api.jquery.com/jQuery.ajax/

Recuerde que cuando se produce un tiempo de espera, se activa el controlador de error y no el controlador de success :)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda