Witam.
Jak pobierać i wyświetlać dane? Jak wy to robicie? Nie chodzi mi oczywiście o
funkcje;) ale o rozwiązanie.
Znam takie metody:
1. Wywołujemy xmlhttprequest który zwraca nam gotowy kod który za pomocą
innerHtml włączamy do div'a.
2. Wywołujemy xmlhttprequest który zwraca nam kod javascript (a dokładniej np.
tablice z danymi), przy pomocy funkcji eval() wykonujemy go i następnie
obrabiamy gotowymi funkcjami które tworzą np. tabelke i wstawiają do strony.
(tą metode stosowałem)
3. Wywołujemy xmlhttprequest który zwraca nam xml'a i z niego odczytujemy dane
i jak wyzej obrabiamy gotowymi funkcjami.
Ogólnie co chce osiągnąć? Dla przykładu mamy strone a na niej dane w tabelce i
kope innych pierdół. Nie chce odświerzać całej strony a tylko tą tabelke. I
teraz zalety i wady opcji:
1. Wszystko dzieje sie po stronie serwer'a który zwraca nam gotowe fragmenty
kodu (w tym wypadku tabele) wykorzystując smarty. Jest to spora zaleta, że nie musimy wykorzystywać js. Niestety w tym przypadku mamy ograniczone pole manewru. A co jeśli chcemy wczytać coś do dwóch div'ow naraz? Nie przekażemy w ten sposób naraz treści do dwóch divow.
2. Tu już jest ciekawiej. Tą metode kiedyś już użyłem. Można przesyłać wiele danych czyli można np. naraz updejtnąć kilka div'ow w których mamy treść czy tabele. Wada? Wszystko tworzymy dynamicznie. Sporo zabawy żeby stworzy głupi wiersz w xhtml'u. W dużym projekcie to syzyfowa praca. O wiele lepiej widzę tu smarty tworzące gotowe tabele po stronie serwer'a. Dodatkowow na starych komputerach może to strasznie zwalniać.
3. W sumie to samo co wyżej tyle tylko, że dane z XML'a. Chyba jeszcze gorsze niż poprzednie.
Zastanawia mnie jak to ugryść w oparciu o schemat MVC. Czyli dochodzę do widoku i co tutaj tak naprawde tworzyć? Gotowe fragmenty, fragmenty z kodem js, sam js?
Najlepiej to chyba by było połączyć jakoś te dwie pierwsze opcje. Czyli, że w odpowiedzi na zapytanie xmlhttprequest dostajemy gotowe fragmenty kodu oraz funkcje i zmienne js które modyfiukują pozostałą treść i w sumie wiedzą co mają zmienić na stronie.
Co wy o tym sądzicie?
Z góry dzięki za odpowiedzi.