Ho usato JSON per gestire le funzionalità AJAX nelle mie applicazioni rails sin da quando ne ho sentito parlare, perché l'uso di RJS/rendering HTML "mi sembrava" sbagliato perché violava MVC. Il primo progetto AJAX-pesante a cui ho lavorato si è concluso con azioni del controller 20-30 legate direttamente a comportamenti specifici dell'interfaccia utente e il mio codice di visualizzazione si è esteso su azioni del controller, partial e file rjs. L'utilizzo di JSON consente di mantenere il codice specifico della vista nella vista e di parlare solo per visualizzare le azioni agnostiche/RESTful del controller tramite AJAX per ottenere i dati necessari.Aggiornamento HTML tramite JSON/AJAX
L'unico mal di testa che ho trovato nell'utilizzare JSON puro è che devi "renderizzare" HTML tramite JS, che nel caso di AJAX che deve aggiornare gli elementi DOM-heavy, può essere un vero dolore. Io alla fine con regolamento edilizio stringa lunghi come
// ...ajax
success: function(records){
$(records).each(function(record){
var html = ('<div id="blah">' + record.attr +
etc +
')
})
}
dove etc è di 10-15 righe di costruire dinamicamente HTML basata sui dati del record. Oltre al fastidio, un più serio richiamo a questo approccio è la duplicazione della struttura HTML (nel modello e nel JS). * Esiste una migliore pratica per questo approccio?
(La mia motivazione per raggiungere finalmente fuori è che sono ora affidato il compito di aggiornare l'HTML così complessa ha richiesto due cicli annidati di codice Ruby per rendere in primo luogo. Duplicazione che in Javascript sembra folle.)
- Una cosa che ho considerato è il caricamento di file parziali statici direttamente dal file system, ma questo sembra un po 'troppo.
Questo è ancora un po 'disordinato e devi fare una specie di inclusione del layout nel tuo Javascript. Mi piace molto il template di John Resig in una delle altre risposte che separa in modo molto chiaro UI e controller. Ottimo se Jaml funziona per te però :) – Jaanus