2012-01-05 19 views
8

Actualmente estoy jugueteando con el método ajax de jQuery para obtener datos de una fuente JSON y animar algunas barras según los datos.Métodos anidados, mejor práctica

Como estoy pirateando, realmente no sé si mi enfoque es correcto.

$.ajax({ 

    url: "/echo/json/", 
    type: "POST", 
    data: data, 
    success: function(data){ 


    $("#value1-bar .usage-bar-fill").animate({ 
     width: data.Value1 
     }, 2500, function() { 
     // Animation complete. 
    }); 

    $("#value2-bar .usage-bar-fill").animate({ 
     width: data.Value2 
     }, 2500, function() { 
     // Animation complete. 
    }); 

    }, 
    dataType: "json" 
}); 

¿Está bien para animar los divs desde el interior del método ajax, o hay una manera más correcta de hacer esto - el formateo sabia sabia, memoria, etc.?

¿Es mejor cómo devolver algunas variables del método ajax y ejecutar el método de animación desde fuera del método ajax?

Salida ejemplo jsFiddle aquí: http://jsfiddle.net/timkl/KPvCj/

Sé que esto es una pregunta bastante amplia, pero al ser un diseñador gráfico vienen diseñador de páginas web autodidacta - Yo nunca sé si lo que estoy haciendo es una buena práctica.

Respuesta

2

Me gusta esta pregunta, y me gustaría ver algunos comentarios más detallados, pero diría que se ve bien. Ya está llamando a una función de éxito incrustado dentro del método ajax, por lo que preocuparse por la memoria/rendimiento de otras funciones incorporadas parece casi insignificante ...

Si desea animar su usage-bar-fill s más con el la misma animación/similar que usó en su función de éxito, entonces podría crear funciones separadas y llamarlas ... pero estoy seguro de que ya lo sabía;)

¡Bonita pregunta!

2

Esto es casi una cuestión de gusto, ya que esta parece ser una aplicación muy pequeña. Cuando sus aplicaciones crecen, el diseño general y los principios se convierten en una parte más crucial del proceso.

Pero dicho esto, no me gusta este enfoque. Es muy propenso a producir código que se repite innecesariamente, a menos que sean estrictamente situaciones puntuales que sean muy específicas para este caso de uso, pero la mayoría de las veces puede generalizarse para permitir la reutilización de código.

Personalmente, declararía las funciones de devolución de llamada en otro lugar, probablemente en un objeto que ya sabe con qué debería estar trabajando (es decir, su selector) y sabe qué hacer con él. De esta forma, el código casi se estructura a sí mismo, manteniendo solo los bits localmente relevantes donde se necesitan.

En este caso específico, sería algo similar a un objeto de gráfico, que cuando se establece un valor actualiza su propia pantalla/vista de manera apropiada.

Espero que mis divagaciones tengan sentido. Puede que esté un poco cansado para dar opiniones y consejos de expertos, así que simplemente me detendré aquí.

+1

¿Puedes reescribir su ejemplo? Normalmente estoy haciendo lo mismo que @timkl y también he estado buscando una mejor aproximación. –

+0

@Raubi Quizás. En este momento estoy demasiado cansado, pero tal vez un poco más tarde. –

Cuestiones relacionadas