dynamiczne ładowanie zawartości

Wątek przeniesiony 2018-01-04 11:04 z PHP przez ŁF.

0

chciałbym spytać Was jak postępujecie gdy do jakiegoś boxa trzeba załadować dynamicznie zawartość np. tabelę, jakiś widget?

czy

  1. generujecie JSem HTML? w sensie gdy jakaś tabelka to cały ? np.
$.get(url, function(data)
        {
            $.each(data, function(i, value){
                //tutaj jakieś append + tagi html
            });
        })

get dostaje JSON

  1. Kontroler zwraca to co w pkt 1 generujemy JSem

  2. Inaczej, ładniej.... ?

Pytanie w kontekście jQuery

0

Jeśli chodzi o modyfikowanie/tworzenie HTMLu, to w kategorii "elegancja" prym wiedzie Angular - po odpowiednim zdefiniowaniu widoku HTML, elementy mogą być zmieniane/generowane automatycznie na podstawie zwracanego JSONa lub ustawianych wartości w modelu.

Natomiast jeśli chodzi o czysty jQuery, to widzę trzy metody:

  1. Taka, jaką opisałeś - tworzenie kodu html za pomocą $('<znacznik />', {'cecha':'wartosc'}) - jest to rozwiązanie najbardziej "eleganckie", dobrze się to sprawdza przy mniej skomplikowanych strukturach. Przy bardziej skomplikowanych i/lub wielu zagnieżdżeniach można się szybko pogubić;
  2. Prototypy, czyli widok HTML sparsowany do zmiennej lub ukryty kontener z kodem html, który po otrzymaniu danych z AJAXa jest pobierany, uzupełniany/przetwarzany i dopiero potem wyświetlany;
  3. Generowanie widoku HTML po stronie backendu - JS musi tylko zapakować go do kontenera docelowego. Ale to też ma swoje wady;

Jest jeszcze oczywiście sposób 'na chama', czyli generowanie kodu HTMLowego bezpośrednio w JS - niby działa, ale nie jest to ani ładne, ani dobre w utrzymaniu;

0

Jeszcze jeden sposób - użycie angulara. Tylko koszt wejścia jest relatywnie wysoki.

0

Ja jeszcze poleciłbym Ci sprawdzić Vue + Axios

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.