ugrás a tartalomhoz

AJAX navigáció

Anonymous · 2006. Szep. 20. (Sze), 23.33
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 -
 
1

AJAX-ot önmagáért ne!

Jano · 2006. Szep. 21. (Cs), 00.53
Ugyan pontosan nem írtad le, hogy milyen típusú oldal, de nem kell mindent AJAX-osítani! AJAX elősorban kisebb területek frissítésére, űrlapok adat cseréjére, illetve komplett webes alkalmazások kapcsán jól használható. Egy sima "statik" oldalnál felesleges. Van egy csomó dolog amire most nem gondolsz, de a hagyományos böngésző használat közben felmerül és az AJAX-os megoldásoddal nem fog működni. Ezek közül párat még talán meg is lehet valósítani sok kódolással, de minek? Nem lesz annyival jobb a felhasználói élmény!

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
2

Jano +1

Anonymous · 2006. Szep. 21. (Cs), 06.52
Sziasztok!

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.
3

Igazad van, de

Anonymous · 2006. Szep. 21. (Cs), 09.25
nem nekem kellene. Egy barátom látta valahol és megkért, hogy ha nem túl nagy munka, akkor alakítsam majd át a leendő oldalát. De akkor azt hiszem lebeszélem róla...

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 -
4

lehet, de körültekintve

tiku I tikaszvince · 2006. Szep. 21. (Cs), 09.49
Szerintem viszont meg lehet úgy is oldani, hogy csak egy verzió legyen. Készítsd el az oldalt hagyományosan, és utólag írd meg a JS kódot, ami elkapja a kattintásokat, és a számodra megfelelő, agyoneffektezett működést produkálja.
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
5

Könyvjelzőzhetőség fragmentként

vbence · 2006. Szep. 21. (Cs), 14.32
Nemrégiben sokat gondolkodtam a témán. Gyakorlatban nem próbáltam ki, de a könyvjelzőzhetőség a fragment URL-ekkel megoldhatónak tűnik. pl:

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).
6

Csak JS

attlad · 2006. Szep. 21. (Cs), 15.18
A fragment identifier-t a böngésző nem küldi el a HTTP kérésben a szervernek így JS (azzal lehetne feldolgozni) kikapcsolása esetén nem működik a fenti, sok helyen használt módszer.