Używam JSON do obsługi funkcji AJAX w moich aplikacjach railsowych, odkąd słyszałem o tym, ponieważ używanie RJS/rendering HTML "czuł" źle, ponieważ naruszało MVC. Pierwszy ciężki projekt AJAX, nad którym pracowałem, zakończył się 20-30 czynnościami kontrolera związanymi bezpośrednio z określonymi zachowaniami UI, a mój kod widoku rozłożył się na akcje kontrolerów, częściowe i pliki rjs. Korzystanie z JSON pozwala zachować widok określonego kodu w widoku i tylko mówić, aby wyświetlić agnostyczne/RESTful działania kontrolera za pośrednictwem AJAX, aby uzyskać potrzebne dane.Aktualizowanie HTML za pomocą JSON/AJAX
Jedynym bólem głowy, jaki odkryłem podczas używania czystego JSON-a, jest to, że musisz "renderować" HTML przez JS, co w przypadku AJAX, który musi aktualizować elementy DOM-ciężkie, może być prawdziwym bólem. Kończę się długim kodem budowania ciągów takich jak:
// ...ajax
success: function(records){
$(records).each(function(record){
var html = ('<div id="blah">' + record.attr +
etc +
')
})
}
gdzie itd. To 10-15 linii dynamicznie konstruujących HTML na podstawie danych rekordów. Oprócz irytacji, poważniejszą wadą tego podejścia jest powielanie struktury HTML (w szablonie i JS). * Czy istnieje lepsza praktyka dla tego podejścia?
(Moja motywacja na końcu dotarcia to jestem teraz zadanie aktualizowania HTML tak skomplikowane to wymagało dwóch zagnieżdżonych pętli kodu Ruby, aby uczynić w pierwszej kolejności. Powielanie, że w JavaScript wydaje się szalony.)
- Jedną z rzeczy, którą rozważałem, jest ładowanie statycznych plików częściowych bezpośrednio z systemu plików, ale wydaje się to trochę za duże.
To wciąż jest trochę chaotyczne i musisz w pewien sposób uwzględnić układ w swoim Javascript. Bardzo podoba mi się szablonowanie Johna Resiga w jednej z innych odpowiedzi, które bardzo wyraźnie (głównie) oddzielają interfejs użytkownika i kontroler. Świetnie, jeśli Jaml dla ciebie pracuje :) – Jaanus