będę pisał malutkie oskryptowanie realizujące następujące zadanie. W bazie danych będą przetrzymywane dane np. o różnych instrumentach muzycznych (przykładowo: gitary, perkusje). Zadaniem skryptu będzie wyświetlanie porównań wybranych instrumentów. Przykładowo: użytkownik wybiera Gitarę1 oraz Gitarę2 i obok siebie dostaje rozpiskę wszystkich parametrów wskazanych gitar. Może dodatkowo dołożyć trzecią, czwartą itd. gitarę do porównania. Równie dobrze może obok gitar wyświetlić dane dowolnej perkusji.
W tym momencie mam pewien problem. Za wyświetlanie poszczególnych typów instrumentów odpowiadają różne szablony, każdy instrument posiada inne parametry oraz różnyc ich układ przy wyświetlaniu. Jak to najlepiej zorganizować? Na razie jedyne sensowne rozwiązanie to:
Kod
1. Plik HTML z zestawieniem
2. Żądanie Ajaxem do PHP
3. PHP pobiera dane z bazy
4. Następnie wczytuje szablon
5. Wstawia wczytane dane do szablonu
6. Wysyła szablon na wyjście
7. Gotowy szablon jest odbierany i wstawiany dynamicznie do HTML
2. Żądanie Ajaxem do PHP
3. PHP pobiera dane z bazy
4. Następnie wczytuje szablon
5. Wstawia wczytane dane do szablonu
6. Wysyła szablon na wyjście
7. Gotowy szablon jest odbierany i wstawiany dynamicznie do HTML
Rozwiązanie niby OK ale myślałem jeszcze nad innym:
Kod
1. Plik HTML z zestawieniem
2. Żądanie JSON.Remote do PHP
3. PHP pobiera dane z bazy
4. Wysyła na wyjście w formacie JSON
2. Żądanie JSON.Remote do PHP
3. PHP pobiera dane z bazy
4. Wysyła na wyjście w formacie JSON
Dzięki temu dostanę w JS dane, którymi mogę dowolnie manipulować. Dodatkowo powinno się zyskać na szbkości gdyż zwracana jest zdecydowanie mniejsza liczba danych.
Problem jednak w tym, że nie mam koncepcji w jaki sposób wczytać teraz odpowiedni szablon poprzez JS oraz wstawić do niego dane otrzymanego wcześniej obiektu. Najwygodniej byłoby tworzyć szablony jako zwykłe pliki *.html więc zabawa w tworzenie ich za pomocą DOM raczej odpada. Może jest jakiś sposób (dobrze by było w mootools) gdyby udało się wczytać takowy plik szablonu i sparsować go w JS.
Jeśli ktoś ma jakąkolwiek sugestię lub radę to byłbym za nią wdzięczny.
Pozdrawiam: pion