Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nawigacja bez przeładowywania
croc
post
Post #1





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

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


Witajcie,

czy istnieją biblioteki/frameworki pozwalające na stworzenie strony, która opierałaby się w 100% na Ajaxowych ładowaniach podstron? Mam na myśli rozwiązanie, które ułatwiałoby tworzenie dwóch wersji strony w zależności od działania JavaScript w przeglądarce:

  1. Bez JavaScript - klasyczna wersja, gdzie każda podstrona miałaby swój link
  2. Z JavaScript - tu każdy link otrzymałby po wczytaniu strony dynamicznie zdarzenie onclick z parametrem oryginalnego hrefa, które wczytywałoby jedynie zawartość bloku głównego i za pomocą DHTML odpowiednio podświetlałyby się elementy menu.

Czy jest już takie rozwiązanie? Co myślicie w ogóle o takiej idei?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


O rany ;P Po co odrazu cały framework (IMG:style_emoticons/default/smile.gif)

1. Poczytaj sobie o czymś co "ciekawi ludzie" nazwali AHAH - to jest mniej więcej to czego szukasz...
2. Idea jest baaardzo prosta, przedstawię Ci na prostym przykłądzie jak to zrobić bez żadnych bibliotek (IMG:style_emoticons/default/tongue.gif)

Wszystkie linki muszą mieć postać:

  1. <a href="http://strona.html" onclick="doAhahRequest('http://strona.html')">Link</a>


I teraz tak. Funkcja "doAhahRequest" powinna być napisana i skonfigurowana tak, by wywołała ajaxa na podany adres, i zwracała false oraz (poczytaj o tym) blokowała bąbelkowanie i domyślne eventy. Dzięki temu - jeśli JS będzie wyłączony będzie działał po prostu "href". Ajax po odczytaniu strony powinien oczywiście ładować tą stronę do okreslonego kontenera (div'a czy czegoś takiego).

I teraz najważniejsze. Strona zwrócona normalnie rózni się od strony zwróconej z ajaxa. Ta z ajaxa nie potrzebuje nagłówka i stopki itp... liczy się sama treść. Nic prostszego wystarczy zawsze przy wywoływaniu jakiejś strony wysyłać dodatkową informację dołączoną do requesta AJAX. Na przyklad jako GET albo (co ja bym preferował) jakiś niestandardowy nagłówek ustawiany w ajaxie przy wysłaniu. Skrypt to rozpozna i zwróci stronę całą lub tulko ajaxową treść (IMG:style_emoticons/default/smile.gif)

Samą zamianę odnośników można zrobić w prosty sposób pisząc na przykład jakąś funckję w PHP typu "generateLink($url,$title)" w której podajesz adres i generowany jest cały tag "A".

proste? A działa bardzo ładnie (IMG:style_emoticons/default/wink.gif)

HTH! (IMG:style_emoticons/default/wink.gif)

P.S. Możesz też oczywiście te linki zmieniać dynamicznie JS'em przy ładowaniu ale z doświadczenia wiem, że to nienajlepsze rozwiązanie - dlaczego? Zasada jest prosta. uruchamiam skrypt po załadowaniu strony, który ma dynamicznie zaktualizować wszystkie "A". Powiedzmy, że na stronie mam na przykład reklamę z innej strony, która czasami potrafi dłuuugo się ładować (IMG:style_emoticons/default/smile.gif) user wchodzi, widzi link który go interesuje i klika (zanim reklama się załadowała - czyli zanim załadowała się strona - czyli linki nie były podmienione) (IMG:style_emoticons/default/wink.gif)

Ten post edytował Sephirus 19.10.2011, 13:02:39
Go to the top of the page
+Quote Post

Posty w temacie


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: 9.10.2025 - 19:43