Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ajax] aktualizacja url bez odświeżania strony
Forum PHP.pl > Forum > XML, AJAX
armon
Witam,

Wie ktoś może jak uzyskać takie coś jak na tej stronie?

http://www.lf24.pl/#!p=wyszukiwarka&am...gdzie=&cp=1

Dynamiczne zapytanie ajaxowe, które aktualizuje url bez odświeżania strony?

Wystarczy mi jakiś hint, z tego co czytałem to piszą wszędzie, że to niemożliwe, a jednak znalazłem przykład, gdzie to uzyskali.

Pozdrawiam
darko
Cytat(armon @ 18.02.2010, 13:38:21 ) *
Witam,

Wie ktoś może jak uzyskać takie coś jak na tej stronie?

http://www.lf24.pl/#!p=wyszukiwarka&am...gdzie=&cp=1

Dynamiczne zapytanie ajaxowe, które aktualizuje url bez odświeżania strony?

Wystarczy mi jakiś hint, z tego co czytałem to piszą wszędzie, że to niemożliwe, a jednak znalazłem przykład, gdzie to uzyskali.

Pozdrawiam

Gdzie Ty tu widzisz, że cokolwiek odbywa się bez odświeżenia strony? Może ja ślepy jestem...
piotrooo89
ale o co chodzi?
armon
Cytat(darko @ 18.02.2010, 13:43:47 ) *
Gdzie Ty tu widzisz, że cokolwiek odbywa się bez odświeżenia strony? Może ja ślepy jestem...



No jak się popatrzysz tutaj: http://js.lf24.pl/page.js

To zauważysz, że korzystają z ajaxa i to w wielu miejscach. Jak wpisujesz słowo kluczowe to znajduje go dynamicznie bez odświeżania strony i zmienia adres url.

Potrzebne mi to jest aby użytkownik na stronie mógł się odwołać / podać komuś linka do tego co znalazł przez ajaxa.
ziqzaq
Wydaje mi się, że chodzi tutaj koledze o zmianę id a nie całego url.
Zawartość jest wczytywana przez ajax po kliknięciu na link zawierający w href id (#!p=wyszukiwarka&co=kurs&gdzie=&cp=1&str=5) i dlatego może się wydawać, że url się zmienia.

armon
Cytat(ziqzaq @ 18.02.2010, 14:22:53 ) *
Wydaje mi się, że chodzi tutaj koledze o zmianę id a nie całego url.
Zawartość jest wczytywana przez ajax po kliknięciu na link zawierający w href id (#!p=wyszukiwarka&co=kurs&gdzie=&cp=1&str=5) i dlatego może się wydawać, że url się zmienia.


no w końcu mądra odpowiedź - wielkie dzięki, czyli w sumie wystarczy zrobić etykiety i je analizować, przez co użytkownicy mogą się wymieniać linkami - THX!
rogal111
Znana i często stosowana na stronach ajaxowych technika (wystarczy spojrzeć na np. gmail).
Pomysł jest taki, aby skorzystać z części adresu którą można zmieniać bez przeładowania strony, czyli z kotwic (część adresu za # ).

Wystarczy regularnie sprawdzać zawartość document.location.href i odpowiednio reagować na zmiany (np. ładując zawartość podstrony przez AJAXa).

Tutaj przykład tego mechanizmu:
http://yensdesign.com/2008/11/creating-aja...hor-navigation/

Jeśli chcemy zachować maksymalną zgodność z wyszukiwarkami proponuję najpierw wykonać stronę bez javascriptu (z twardym przeładowaniem), a dopiero później przez javascript przejąć obsługę interesujących linków.
NP. Dla linku:
  1. <a class="ajax" href="podstronanr1">Link</a>


Wystarczy wywołać metodę zmieniającą link do AJAX:

  1. $('a.ajax').each(function(){
  2. $(this).attr('href','#'+$(this).attr('href'));
  3. });
mr__y
Cytat(rogal111 @ 19.02.2010, 19:38:56 ) *
Jeśli chcemy zachować maksymalną zgodność z wyszukiwarkami proponuję najpierw wykonać stronę bez javascriptu (z twardym przeładowaniem), a dopiero później przez javascript przejąć obsługę interesujących linków.


Jeżeli chodzi o google, nie ma problemu ze stroną ajaxową, pod warunkiem, że po # w adresie jest także wykrzyknik.
Czyli np. http://adres/costam.php#![parametry]
Google od pewnego czasu indeksuje takie strony, zamieniając adres wg w/w schematu na http://adres/costam.php?_escaped_fragment_=[parametry]
Oczywiście samą obsługę tego _escaped_fragment_ trzeba już zapewnić po stronie skryptu.
Więcej informacji: http://googlewebmastercentral.blogspot.com...-crawlable.html


Cytat(ziqzaq @ 18.02.2010, 15:22:53 ) *
Wydaje mi się, że chodzi tutaj koledze o zmianę id a nie całego url.
Zawartość jest wczytywana przez ajax po kliknięciu na link zawierający w href id (#!p=wyszukiwarka&co=kurs&gdzie=&cp=1&str=5) i dlatego może się wydawać, że url się zmienia.

Zgadza się, ale jest dodatkowy problem z obsługą "Wstecz" i "Do przodu" w przeglądarce.
W IE8 dostępne jest zdarzenie ohashchange i można je do tego wykorzystać.
W pozostałych przeglądarkach można wykorzystać np. bibliotekę dhtmlHistory.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.