2010-08-11 8 views

Respuesta

7

Success y complete están documentados en here. Realmente no necesita preocuparse por qué textStatus se pasa a las funciones, todo se maneja automáticamente. La función de éxito se invoca cuando/si la llamada tiene éxito, y se realiza una llamada completa al final de todo lo demás.

Por lo tanto, como ejemplo de algo en lo que estoy trabajando, encadené tres funciones que se activan al hacer clic en una sección de la página: un div se desvanece, y cuando lo hace ejecuta una llamada ajax. La función de éxito actualiza el contenido del div (mientras está desvanecido), y luego la función completa llama a fadeIn en el div. Entonces, lo que hace es desvanecerse, actualizarse y volver a fundirse con contenido nuevo.

+0

Ese es el mismo enlace de documentación que puse en mi pregunta. 'Complete' se llama después de' success' O 'error', ¿no? Así que 'textStatus' complete' podría ser "éxito" o cualquiera de los códigos de error. Y algunas de las otras respuestas indican que se puede invocar 'success' con textStatus "notmodified". – Robert

+4

Sí, completo podría ser cualquiera de los posibles códigos textStatus. El éxito solo será exitoso o no modificado. Notmodified se usa cuando solo usa una versión en caché, lo más probable, aunque me parece raro que se llame éxito cuando básicamente dices "hey, nada ha cambiado". –

+1

El éxito también puede ser 'nocontent'. jQuery 1.x puede devolver 'success' y jQuery 2.x puede devolver' nocontent' para la misma llamada. – cyberwombat

2

Mirando la fuente, parece que notmodified podría ser un valor, aunque nunca lo he visto.

+0

notmodified es probablemente el valor utilizado si la caché se establece en true y jsut utiliza una versión en caché. –

+0

@Alex - Crea lo que – Adam

6

El éxito solo se puede invocar con éxito. Entonces la respuesta fácil es no.

Completo siempre funcionará, independientemente de cómo lo hizo ajax. Tan completo debe ser capaz de obtener y los valores de texto que puede devolver.

En el foro me encontré textstatus puede ser cualquiera de estos valores

"timeout" 
"error" 
"notmodified" 
"success" 
"parsererror" 

http://forum.jquery.com/topic/jquery-ajax-textstatus-documented

+5

Su respuesta fácil no es del todo correcta. La fuente jQuery parece mostrar que la devolución de llamada 'success' se ejecutará si se devuelve' notmodified'. http://github.com/jquery/jquery/blob/master/src/ajax.js#L436 – user113716

+0

la respuesta debe actualizarse ya que no es correcta y es engañosa. textStatus en devolución de llamada correcta podría tomar otros valores como se describe en otras respuestas aquí –

Cuestiones relacionadas