![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Buduję stronę w której wykożystuję prostą funkcję AJAX do podmiany zawartości elementów na stronie
jak zrobić, żeby można było zbudować przycisk wstecz, który po kliknięciu wywoływał by funkcję ActionHistory() i cofał do poprzedniej operacji wykonanej za pomocą getData(); Jak zaprogramować funkcję ActionHistory(), która zapamieta wywołania funkcji getData() i po wciśnięniu X razy wstecz przejdzie do wykonanej wtedy akcji? Identycznie potrzebował bym przycisk dalej, ale myślę, że można to zrobić za pomocą jednej i tej samej funkcji i podając jej tylko np. ActionHistory(-1) lub ActionHistory(1) przechodziło by wstecz lub dalej. Kombinowałem trochę, ale niestety ne znam na tyle JS żeby to zrobić porządnie, za to znam PHP i orientuję się jak mniej wiecej jak JS działa. |
|
|
![]() |
![]()
Post
#2
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Przede wszystkim musisz sprawić aby przeglądarka zapamiętywała kolejne linki w historii. Tu z pomocą przychodzi Ci location.hash, czyli Tworzysz linki:
Kod http://example.com/#home http://example.com/#show ... Następnie tworzysz funkcje która co określony czas* sprawdza wartość location.hash i na tej podstawie wczytuje konkretną stronę. Tu z pewnością będziesz potrzebował funkcji setInterval. * Czas musi być stosunkowo mały, tak aby użytkownik nie odniósł wrażenia że jego akcje wykonywane są z opóźnieniem. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim musisz sprawić aby przeglądarka zapamiętywała kolejne linki w historii. Tu z pomocą przychodzi Ci location.hash, czyli Tworzysz linki: Kod http://example.com/#home http://example.com/#show ... Następnie tworzysz funkcje która co określony czas* sprawdza wartość location.hash i na tej podstawie wczytuje konkretną stronę. Tu z pewnością będziesz potrzebował funkcji setInterval. * Czas musi być stosunkowo mały, tak aby użytkownik nie odniósł wrażenia że jego akcje wykonywane są z opóźnieniem. Rozwiązanie ciekawe, lecz nie nadaje się do mojej strony z tego względu, ze część elementów nie zmienia adresu i na dodatek jest już setki obiektów w PHP napisanych pod ajaxa i trochę by było sporo modyfikacji. Wszystk będzie odbywało się przez funkcję getData() i dla tego pomyślałem, żeby zapamiętywać jej akcje, tak myślę, tylko nie wiem jak to zrobić, żeby zapamiętywać z funkcji getData() TARGET oraz QUERY w jakimś obiekcie czy coś, a potem odwołując się do starszego elementu cofać, lub odwołując sie do nowszego iść na przód, tylko jak to zrobić? moga być przykłady, chętnie pogłówkuję, ale sam za słabo znaj jeszcze JS żeby dać sobie radę. |
|
|
![]()
Post
#4
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 ![]() |
Jeśli chcesz aby akcje były wykonywane wraz wciśnięciem przycisku wstecz/dalej to nie masz innego wyjścia. Możesz co prawda popróbować z przekazywaniem identyfikatora (coś w rodzaju uchwytu) zapisanego w sesji i na jego podstawie wykonywać akcje, ale to ma swoje minusy i jest niemożliwe do zaimplementowania w pewnych sytuacjach, a zastosowanie tego jest o wiele bardziej problematyczne niż wcześniej wspomniany sposób.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 4 Dołączył: 7.02.2009 Skąd: pless Ostrzeżenie: (0%) ![]() ![]() |
a gdyby to zrobić tak, że najpierw tworzona jest dwu wymiarowa tablica np.
ActionHistory[numer][query] oraz ActionHistory[numer][target] potem serializowana i zapisywana do cookie a podczas cofania lub przechodzenia dalej odczytywana z cookie, deserializowana? tylko jak operować na tablicach w JS , posortować, a następnie jak odczytać wcześiejszy element? jak stworzyć globalną tablicę, do której bedę miał dostęp zarówno wewnątrz funkcji jak i w reszcie dokumentu? . Ten post edytował patryk9200 2.04.2011, 22:28:45 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 23:09 |