¿Alguien puede ayudarme?
No puedo entender la diferencia entre success
y .done()
de $.ajax
.
Si es posible, dé ejemplos.
jquery
jquery-deferred
Poonam Bhatt
fuente
fuente
Respuestas:
En resumen, desacoplar la función de devolución de llamada exitosa de la función ajax para que luego pueda agregar sus propios controladores sin modificar el código original (patrón de observador).
Encuentre información más detallada desde aquí: https://stackoverflow.com/a/14754681/1049184
fuente
success:
usado como parámetro y.success()
como método en unjqXHR
. El último está siendo desaprobado, pero el primero es sobre lo que estaba preguntando el OP.success
solo se activa si la llamada AJAX es exitosa, es decir, finalmente devuelve un estado HTTP 200.error
se activa si falla ycomplete
cuando finaliza la solicitud, independientemente del éxito.En jQuery 1.8 en el
jqXHR
objeto (devuelto por$.ajax
)success
fue reemplazado condone
,error
confail
ycomplete
conalways
.Sin embargo, aún debería poder inicializar la solicitud AJAX con la sintaxis anterior. Entonces estos hacen cosas similares:
Este cambio es por compatibilidad con el objeto diferido de jQuery 1.5 . Diferido (y ahora
Promise
, que tiene soporte completo para navegadores nativos en Chrome y FX) le permite encadenar acciones asincrónicas:Esta cadena de funciones es más fácil de mantener que una pirámide anidada de devoluciones de llamada con la que obtiene
success
.Sin embargo, tenga en cuenta que
done
ahora está en desuso a favor de laPromise
sintaxis que usa en suthen
lugar:Vale la pena adoptar esto porque
async
yawait
extender promete una sintaxis mejorada (y manejo de errores):fuente
success
, en jQuery 1.8 que ha sido reemplazado pordone
. Funcionan de la misma manera, perodone
es más coherente con el resto de jQuery..done
la primera (y ahora callejón sin salida) de jQuery sobre lo que se convirtióPromise
y que ahora tiene un soporte de lenguaje bastante completo. En nuevos proyectos, usaríaconst response = await fetch(...)
en su lugar..success()
solo se llama si su servidor web responde con un encabezado HTTP 200 OK, básicamente cuando todo está bien.Las devoluciones de llamada adjuntas a done () se activarán cuando se resuelva el aplazado. Las devoluciones de llamada adjuntas a fail () se activarán cuando se rechace el aplazado.
fuente
success
es la devolución de llamada que se invoca cuando la solicitud es exitosa y es parte de la$.ajax
llamada.done
es en realidad parte deljqXHR
objeto devuelto por$.ajax()
y reemplazasuccess
en jQuery 1.8.fuente