![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Wie ktoś jak to jest zrobione np. na fecebook`u to, że skrypt potrafi wykryć kiedy użytkownik przechodzi do strony wstecz?
Mam dynamiczną stronę, na której treść jest ładowana przez js i kiedy przechodze do jakiejś podstrony to zmieniam adres na adresstrony.pl/#podstrona. Chciałbym wykryć kiedy użytkownik przechodzi wstecz/dalej używając nawigacji przeglądarki i zaserwować mu odpowiednią treść. Na facebooku jest to wogóle w niezrozumiały dla mnie sposób rozwiązane, ponieważ zmienia się adres w przeglądarce przed znakiem '#', a mimo to strona nie jest wcale odświeżana. Oszczędzi mi ktoś zabawy w reverse engineering i poda link do jakiegoś wytłumaczenia? Z góry dzięki. Wykrycie zmiany adresu naturalnie mógłbym zrealizować przy pomocy setInterval, ale z oczywistych względów tego rozwiązania chciałbym uniknąć. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Właśnie o to chodziło co napisał @melkorm.
Tu jest wszystko wyjaśnione: https://developer.mozilla.org/en/DOM/Manipu...browser_history Facebook właśnie też tą "magię" stosuje, że zmiania się adres w pasku a strona pozostaje nieodświerzona. I też sobie przypomniałem, że widziałem to już na githubie. @kamil4u co do tego rozwiązania, które wyżej zamieściłem, oczywiście ono działa, ale: - jest nieeleganckie - tak jak już zauważyłeś niepotrzebnie obciąża przeglądarkę (jedna strona niewiele, ale wiele otwartych już bardziej). Ogólnie moim zdaniem strona, która nie jest aktualnie używana tylko jest sobie w zakładce w tle nie powinna zmuszać procesora do jakiejś pracy (patrz punkt pierwszy). Małe obciążenie - co powiesz o urządzeniach mobilnych? - po trzecie istnieje ryzyko niewykrycia takiego zdarzenia Jeśli napiszę coś przydatnego, to oczywiście podzielę się. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 20:12 |