2012-01-05 25 views
8

Attualmente sto manipolando il metodo Ajax di jQuery per ottenere alcuni dati da un feed JSON e animare alcune barre in base ai dati.Metodi annidati, best practice

Mentre sto tagliando, non so davvero se il mio approccio è giusto.

$.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" 
}); 

è ok per animare le div dall'interno del metodo di ajax, o c'è un modo più corretto per fare questo - formattazione saggio, sapiente memoria ecc?

È meglio per alcuni come restituire alcune variabili dal metodo ajax ed eseguire il metodo di animazione dall'esterno del metodo ajax?

Partenza esempio jsfiddle qui: http://jsfiddle.net/timkl/KPvCj/

So che questo è un piuttosto ampio domanda, ma essendo un graphic designer venire autodidatta web designer - non ho mai veramente sapere se quello che sto facendo è una buona pratica.

risposta

2

Mi piace questa domanda, e mi piacerebbe vedere un feedback più dettagliato, ma direi che sembra buono. Stai già chiamando una funzione di successo integrata nel metodo Ajax, quindi preoccuparti della memoria/prestazioni di ulteriori funzioni incorporate sembra quasi trascurabile ...

Se vuoi animare il tuo usage-bar-fill s di più con il animazione identica/simile che hai usato nella tua funzione di successo, quindi potrei creare funzioni separate e chiamarle invece ... ma sono sicuro che lo sapevi già;)

Bella domanda!

2

Questa è quasi una questione di gusti, dal momento che questa sembra essere un'applicazione molto piccola. Quando le tue applicazioni crescono, la progettazione e i principi generali diventano una parte più cruciale del processo.

Ma detto questo, non mi piace questo approccio. È molto incline a produrre codice che si ripete inutilmente, a meno che non si tratti di situazioni strettamente specifiche e molto specifiche di questo caso d'uso, ma la maggior parte delle volte è possibile generalizzare per abilitare il riutilizzo del codice.

Personalmente, vorrei dichiarare le funzioni di callback altrove, probabilmente su un oggetto che sa già con cosa dovrebbe funzionare (cioè il tuo selettore) e sa cosa fare con esso. In questo modo, il codice quasi si struttura, mantenendo solo i bit localmente rilevanti dove sono necessari.

In questo caso specifico, sarebbe qualcosa sulla falsariga di un oggetto grafico, che quando viene impostato un valore aggiorna la propria visualizzazione/vista in modo appropriato.

Speriamo che le mie divagazioni abbiano un senso. Potrei essere un po 'troppo stanco per esprimere opinioni e consigli di esperti, quindi mi limiterò a fermarmi qui.

+1

Riesci a riscrivere il suo esempio? Normalmente faccio lo stesso con @timkl e anch'io ho cercato un modo migliore per farlo. –

+0

@Raubi Forse. In questo momento sono troppo stanco, ma forse un po 'più tardi. –