yo diría que dilatará objetos son sólo un paso más en la evolución de jQuery.
Antes de ellos, solo era posible pasar las devoluciones de llamada a $.ajax
en el objeto de configuración. Teniendo deferrds, ahora puede manejar toda la ejecución asincrónica o incluso sincrónica con ellos, lo que conduce a una interfaz más unificada. Esta es la ventaja: simplificación hasta unificación.
Algo similar ocurrió con la introducción de on
. No existe una ventaja real de on
sobre bind
, pero simplifica el manejo de eventos en el sentido de que combina la funcionalidad de bind
, live
y delegate
. El resultado es una API unificada para el manejo de eventos. O uso dos veces la misma función, on
, o bind
y delegate
.
De manera similar, si quiero hacer dos llamadas Ajax dependientes, puedo usar dos llamadas $.ajax
más $.when
, que es con lo que estoy familiarizado y no es diferente de hacer una o varias llamadas, o Anoto una llamada dentro de la otra, lo que me obliga a pensar diferente sobre cómo se lleva a cabo la ejecución.
Los objetos diferidos son una forma unificada y general para la ejecución de código asincrónico. Eso no significa que la forma anterior de agregar devoluciones de llamada deba eliminarse, rompería una gran cantidad de código. Y además de eso, todavía está más cerca de los métodos del objeto original XMLHTTPRequest
, que algunas personas podrían preferir.
Encogiéndose ... Supongo que el primero puede sentirse más jQuery-y para algunos. No creo que haya más que una ventaja estilística aquí. –