Zwracam się do usługi sieci Web, która zwraca tablicę obiektów w JSON. Chcę wziąć te obiekty i wypełnić div za pomocą HTML. Powiedzmy, że każdy obiekt zawiera adres URL i nazwę.
Gdybym chciał wygenerować następujący kod HTML dla każdego obiektu:
<div><img src=" url" />the name</div>
Czy istnieje na to najlepsza praktyka? Myślałem nad kilkoma sposobami:
Połączenie ciągów znaków
utworzenie elementów
użycie wtyczki szablonów
Wygenerowanie HTML na serwerze, a następnie wprowadzenie przez JSON.
1 odpowiedź
Opcje 1 i 2 będą najbardziej bezpośrednimi opcjami, jednak w przypadku obu opcji odczujesz wpływ na wydajność i konserwację poprzez budowanie ciągów lub tworzenie obiektów DOM. Tworzenie szablonów nie jest aż tak złe i widać, że wyskakuje w większości głównych frameworków Javascript.
Oto przykład wtyczki JQuery Template, która pozwoli ci zaoszczędzić na wydajności i jest naprawdę bardzo prosta:
var t = $.template('<div><img src="${url}" />${name}</div>');
$(selector).append( t , {
url: jsonObj.url,
name: jsonObj.name
});
idź lepszą drogą (lepiej działającą, łatwiejszą w utrzymaniu) i używaj szablonów.