AJAX navigáció
Jó estét!
AJAX segítéségével szeretném azt megoldani, hogy az oldalon való navigációkor
ne töltődjön újra az egész oldal, csak a tényleges tartalom (tehát a fejléc, menü,
lábléc stb. ne).
Eddig az AJAXszal csak nagyon egyszerű dolgokat csináltam (pl. egy select értékének
beállítása az adatbázisból egy másik select értékének alapján), ezért most kellene
némi segítség/útmutatás.
Szóval, ahogy én elképzeltem:
1. gondolva arra, hogy esetleg nem mindenki engedélyezi a javascriptet, ezért két féle
oldalt készítenék, az egyik a hagyományos (tehát egy menüpontra kattintva az egész
oldal betölt) és egy AJAXosat. A hagyományos oldal benne lenne egy divben és ha
engedélyezve van a JS, akkor azt a visibility állításával eltüntetem, míg az eddig
rejtett AJAXos oldalt előhozom. Viszont akkor így kétszer lesz "ugyanaz" a forráskód, ezért
az AJAXos oldalt lehet, hogy magával az AJAXszal kéne betöltenem?
2. a menüre való kattintáskor a linkben átadnám, hogy melyik oldalhoz tartozó tartalomra
van szükség és a PHP fájl egy switch segítségével az oldalnak megfelelő kódot adná
vissza, amiket külön fájlokban tárolnék. Viszont így minden oldalhoz kell egy PHP fájl is. Gondolom ennél van jobb megoldás is, nem?
3. hogyan tudom megcsinálni azt hogy a kérés küldése és a válasz
közti időben kiírjak egy "Kérem várjon" feliratot?
Na, most ezek jutottak eszembe, de szívesen fogadok minden tanácsot, segítséget!
- BalázS -
■ AJAX segítéségével szeretném azt megoldani, hogy az oldalon való navigációkor
ne töltődjön újra az egész oldal, csak a tényleges tartalom (tehát a fejléc, menü,
lábléc stb. ne).
Eddig az AJAXszal csak nagyon egyszerű dolgokat csináltam (pl. egy select értékének
beállítása az adatbázisból egy másik select értékének alapján), ezért most kellene
némi segítség/útmutatás.
Szóval, ahogy én elképzeltem:
1. gondolva arra, hogy esetleg nem mindenki engedélyezi a javascriptet, ezért két féle
oldalt készítenék, az egyik a hagyományos (tehát egy menüpontra kattintva az egész
oldal betölt) és egy AJAXosat. A hagyományos oldal benne lenne egy divben és ha
engedélyezve van a JS, akkor azt a visibility állításával eltüntetem, míg az eddig
rejtett AJAXos oldalt előhozom. Viszont akkor így kétszer lesz "ugyanaz" a forráskód, ezért
az AJAXos oldalt lehet, hogy magával az AJAXszal kéne betöltenem?
2. a menüre való kattintáskor a linkben átadnám, hogy melyik oldalhoz tartozó tartalomra
van szükség és a PHP fájl egy switch segítségével az oldalnak megfelelő kódot adná
vissza, amiket külön fájlokban tárolnék. Viszont így minden oldalhoz kell egy PHP fájl is. Gondolom ennél van jobb megoldás is, nem?
3. hogyan tudom megcsinálni azt hogy a kérés küldése és a válasz
közti időben kiírjak egy "Kérem várjon" feliratot?
Na, most ezek jutottak eszembe, de szívesen fogadok minden tanácsot, segítséget!
- BalázS -
AJAX-ot önmagáért ne!
Csak az AJAX technika önmagárt történő használatáért ne tedd!
Mikről beszélek?
- Vissza gomb
- URL és tartalom összerendelés (bookmarkolás, linkként elküldés)
- Középső gombra új fülre nyitás
- egyéb
Jano +1
Jano-nak teljesen igaza van. Én fejlesztettem már többször is (kérésre, munka - nem magam örömére) ajaxos portált. Nagyrészt a legtöbb felmerülő és fent említett gond áthidalható, de sok munkással, szívással és még mindig nem lesz "ugynaz"... Szal tényleg: nem mindenre Ajaxot...megvan a helye. Szerintem.
Igazad van, de
Sőt ha jól gondolom így még a keresők sem tudják majd indexelni, lévén hogy nem lesznek különálló oldalak (persze ez megkerülhető, ha kiteszek valami alternatív változatot, de az sem lenne az igazi azért).
Akkor viszont hogyan lehetne megoldni? Nyilván framet nem szeretnék használni...
(Az oldal nagyrészt statikus lesz, pár űrlappal.)
- BalázS -
lehet, de körültekintve
Azt hogy szerver oldalon hogy döntöd el, hogy a teljes tartalmat kell-e kiszolgálnod, menüstől, fejlécestől, vagy csak a tartalmat, több módszer is elképzelhető.
Készíthetsz két kiszolgáló felületet a két kiszolgálási formának, vagy, ha már úgyis átfolyik a kérés egy JS utasításon, akkor hozzádobhatsz egy GET paramétert a kéréshez, melynek meglételét vizsgálod.
Az utóbbi esetben szerver oldalon is elegendő egy kiszolgáló felület, és a szerveroldali kódod is mindösszesen egy sorral bővül.
De ekkor még a visszagomb, és könyvjelzőzhetőség problémája még mindig fennáll.
tiku
Könyvjelzőzhetőség fragmentként
www.domain.hu/#hagyomanyos/url/a.tartalom?hoz
a # utáni részt (fragment név) le tudod cserélni, ha logikailag más dokumentumba lép. A szerveroldal pedig tudja, ha ilyen címet kap mit kell csinálni (akár átirányítja a nem-ajaxos változatra).
Csak JS