Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> nie jestem pewna ..., czy dobrze rozumiem AJAX
jolam
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


Nie jestem pewna czy dobrze rozumiem co to jest AJAX. Powiedzmy, że mam na stronie tabelkę z kilkoma kolumnami. I chciałabym zmienić jej uporządkowanie bez ponownego wczytania strony. To mogłabym wstawić takie udawane odnośniki przy pomocy onclick i po kliknięciu nastąpiłoby takie odczytanie innej strony w tle (a ta strona miałaby już odpowiednie sortowanie kolumn w tabeli) i dalej przy pomocy jQuery mogłabym podmienić całą tabelę na to co odczyta się z tej strony wywołanej w tle. Czy to o to chodzi, że można po prostu podmieniać elementy strony bez jej ponownego wczytania? Tylko trzeba mieć przygotowane na innych stronach te treści do wczytania albo lepiej generować je według adresu w skrypcie php. Czy tylko o to chodzi?

pozdrawiam Jola
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Generalnie tak, AJAX to jest asynchroniczne wywoływanie przy pomocy JavaScript (i XML wg nazwy). Co prawda samo sortowanie po kolumnach (jeśli nie ma stronicowania) można wygodniej zrobić w samym JavaScript, ale jeśli masz dużo więcej danych i nie chcesz ich pobierać na raz to ajax będzie dobrym rozwiązaniem.

Jeśli już korzystasz z jQuery to zrezygnuj z onClick, to tak na marginesie.

Przygotowujesz sobie skrypt, po stronie serwera, który na podstawie podanych parametrów przygotuje porcję danych do wpisania w tabelkę. Następnie skrypt w jQuery, po stronie przeglądarki, po kliknięciu w wybraną kolumnę wyśle zapytanie ajax do serwera, pobierze dane i wpisze je do tabeli, nadpisując już te istniejące. Minimalne parametry to wybrana kolumna i kierunek sortowania, dodatkowo, jeśli masz stronicowanie to nr strony i ilość rekordów na stronie. Na podstawie tych parametrów skrypt po stronie serwera pobiera tylko tą część danych, która zostanie wyświetlona, pakuje to np do JSON'a (na początku może być gotowy html). Skrypt po stronie przeglądarki pobrane dane parsuje i wpisuje do tabeli.
Go to the top of the page
+Quote Post
bajt
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 9.09.2005

Ostrzeżenie: (0%)
-----


Jeśli tabelka nie jest ogromna i nie chcesz zmieniać zapytań do bazy możesz skorzystać z jquery.tablesorter.pager.js oraz jquery.tablesorter.js
Przykłady na stronie: http://tablesorter.com/docs/
Go to the top of the page
+Quote Post
jolam
post
Post #4





Grupa: Zarejestrowani
Postów: 259
Pomógł: 0
Dołączył: 12.07.2009

Ostrzeżenie: (10%)
X----


vokiel a mógłbyś mi napisać jak użyć JSON? Myślałam, że ta tabela którą odbiorę poprzez AJAX to ma być kompletna ze znacznikami HTML? Czy może lepiej pobierać poszczególne komórki tabeli. Ale co dalej? W jQuery mam dodawać znaczniki HTML? Jak jest lepiej? Chyba wydajniejsze jest rozwiązanie pobierania całej tabeli, czy nie? Już nic nie rozumiem.


pozdrawiam najserdeczniej Jola

Go to the top of the page
+Quote Post
vokiel
post
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Wybór opcji zależy od Ciebie, każda ma swoje plusy i minusy.

Pobieranie gotowego HTML'a powoduje, że musisz pobrać większą ilość danych, ale dzięki temu możesz odebrane dane po prostu wstawić przez funkcję html(). Rozwiązanie to daje więcej pracy skryptowi na serwerze, przez co przy dużym obciążeniu strony może to zacząć być nieefektywne (oczywiście pozostaje wtedy cache, ale to inny temat). Jeśli nie zależy Ci na niwelowaniu obciążenia serwera i/lub ilości transferu, to prawdopodobnie będzie szybciej i łatwiej serwować gotowy html.

Natomiast zwracanie danych w postaci JSON powoduje, że serwer ma mniej pracy, mniej transferu jest zużywane, a w związku z tym ładowanie danych powinno odbywać się szybciej. Jako, że generowanie html'a w przeglądarce nie jest bardzo obciążające, zatem ten sposób, raczej, będzie szybszy.

Użycie JSON'a po stronie serwera sprowadza się w zasadzie do wykorzystania (w przypadku PHP funkcji json_encode ). Wywołanie zapytania ajax w jQuery możesz zrobić dopisując parametr dataTypeString: 'json', lub użyć funkcji .getJSON(). Pobrane w ten sposób dane łatwo się przetwarza (są przykłady w dokumentacji funkcji ajax).
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 00:18