Metody przesyłania i obróbki danych |
Metody przesyłania i obróbki danych |
17.05.2006, 05:44:20
Post
#1
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 9.01.2005 Ostrzeżenie: (0%) |
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. |
|
|
17.05.2006, 07:18:04
Post
#2
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) |
ja korzystam z prototype i Ajax.Updater z opcją evalScripts, dzięki czemu mogę przekazać zarówno kod HTML jak i JS . Jeżeli chce coś załadować do dwóch divów to już faktycznie jest troche zabawy, ale zawsze można wywołac 2 AJAXy
-------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
17.05.2006, 07:26:15
Post
#3
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 9.01.2005 Ostrzeżenie: (0%) |
Tak, metoda z dwoma ajax'ami też mi przyszła do głowy ale wydaje mi się to niezbyt dobre. Bo po co łączyć się dwa razy jak można raz?
|
|
|
17.05.2006, 19:26:13
Post
#4
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) |
to może niech serwer zwraca za jednym zapytaniem 2 divy, a JavaScriptem podzielić to na 2 i do 2 osobnych załadować...
-------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
18.05.2006, 07:22:46
Post
#5
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 9.01.2005 Ostrzeżenie: (0%) |
To też jakiś pomysł. Generalnie wtedy trzeba przyjąć strategie, że ładujemy na początku jakiś interfejs z kodem js obsługującym wszelkie żądania i teraz ten kod sam by wiedział, ze jak wykonaliśmy takiego requesta to do jednego div'a ślemy to do drugiego oraz dodatkowo włączamy spowrotem mozliwosc kl;ikniecia tu i tu. Trzeba jednak pamiętać że wtedy usimy załadować cały skrypt odpowiedzialny za obsługe żądań już na początku. Ewentualnie będą też requesty js o kod dodatkowy kod js.
Myśle że tak to trzeba będzie chyba rozwiązać. |
|
|
18.05.2006, 13:08:21
Post
#6
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) |
no chyba, ze kod ktory bedziesz ladowal będzie to js w stylu:
w tym momencie zawsze masz takiego samego requesta, nie potrzebujeszcz dodatkowych funkcji do rozdzielania, ale za to musisz przygotować tresc diva zawsze w jednej linijce i bez cudzyslowow - proste do zrobienia w php... a w JS dajesz tylko eval(); w przypadku Prototype było by to tak: dzięki temu możesz załadować zarówno HTML do diva, jak i skrypty ladujace HTML do innych divow... -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
18.05.2006, 13:22:11
Post
#7
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 9.01.2005 Ostrzeżenie: (0%) |
Miałem podobną myśl jak w pierwszym przypadku.
Drugiego przypadku (choć w sumie to to samo) nie wymyślałem bo nie używałem jeszcze żadnych bibliotek;) Ogólnie te rozwiązania są jak dla mnie trochę pokręcone i nie widziało mi się ich używać ale teraz mnie upewniliście, że są jedynymi słusznymi;) Jeszcze raz dzięki za podpowiedzi i rozjaśnienie sytuacji. Pozdrawiam, Kamil |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 05:36 |