ugrás a tartalomhoz

Linkek kezelése AJAX esetén

szponzor · 2013. Júl. 22. (H), 11.49
Sziasztok!

Egy egyszerű céges oldalt szeretnék készíteni, ahol az egyes menüpontokra kattintásnál egy jQuery load-dal töltöm be az oldalt, ami csak a tartalmi részt tartalmazza, tehát pl. ennyit: <h1>Cégünkről</h1>. Betöltés után history.pushState-tel kap egy linket a címsáv is, viszont ha visszalépek a böngészőben, akkor a linket jól visszalépteti, viszont az oldalt nem tölti vissza.
A kérdésem, hogy hogy tudnám megoldani, hogy az ilyen visszalépések esetén visszatöltse a tartalmat?
Ha pedig megvannak a linkek, akkor hogy tudom betölteni az egész oldalt? Ha az xy.hu/cegunkrol.html-t írok a böngészőbe, akkor értelemszerűen csak a tartalom(<h1>Cégünkről</h1>)jön be, a header, footer stb. viszont nem, mert az az index fájlban van. Ezek a problémák hogy oldhatóak meg?

Előre is köszönöm a segítséget!
 
1

Kezelni

Poetro · 2013. Júl. 22. (H), 12.01
Kezelni kell a változást a History-ban. Fel kell iratkozni a window popstate eseményére, és annak megfelelően újabb AJAX kéréseket kell végrehajtani, amivel visszarakod az előző tartalmat. persze ami még egyszerűbb, ugyanakkor memóriaigényes, hogyha eltárolod az egyes oldalakat, és amikor a felhasználó visszalép, akkor visszaállítod (azaz eltárolod a neked fontos dolgokat a state objektumban).
5

OK

szponzor · 2013. Júl. 22. (H), 13.45
OK, köszönöm. Ezzel tudom is figyelni az oldalt, de azt hiszem, hogy mivel a másik problémára még mindig nem találtam megoldást, ezért marad a sima, AJAX-nélküli metódus az oldalra.
7

Az elsőre nézd meg a

inf · 2013. Júl. 23. (K), 12.13
Az elsőre nézd meg a backbone.js forrását, abban benne van.
A másodikra az a megoldás, hogy beteszed htaccess-be, hogy minden html-t az index.html-re irányítson, és ott az url alapján beállítod az aktuális tartalmat. Nem sokban különbözik ez a klasszikus szerver oldali front-controller-es megoldástól.
2

AJAX

Hidvégi Gábor · 2013. Júl. 22. (H), 12.08
Pontosan mi a célod az AJAX-szal azon kívül, hogy elmondhatod magadról: használod? Egy jó cache-eléssel, kevés kiküldött js és css fájllal ugyanolyan sebességet lehet elérni egy normál, akár statikus oldalnál is, amit ráadásul a keresők is gond nélkül megértenek.
3

Első körben jobban elmélyülni

szponzor · 2013. Júl. 22. (H), 13.10
Első körben jobban elmélyülni benne. Pár helyen használtam eddig, volt ahol mondhatni kötelező volt, volt ahol csak hasznos. Ha nagyon nem megy a linkek miatt ennél az oldalnál, akkor marad az általad javasolt dolog.
4

Ha van rá lehetőség, akkor

Hidvégi Gábor · 2013. Júl. 22. (H), 13.16
Ha van rá lehetőség, akkor inkább egy nem publikus oldalon próbálkozz, például intraneten, ahol tudsz visszajelzéseket kérni és kapni. Az AJAX-os adatbetöltés elég sok használhatósági és programozási problémát hoz magával, így jobb nem élesben tesztelni.
6

Mint pl.

Pepita · 2013. Júl. 23. (K), 01.43
Az AJAX-os adatbetöltés elég sok használhatósági és programozási problémát hoz magával
Mint például pont jQuery load esetén könnyű belecsúszni (asszem IE8 alatt), hogy cache-ből nyomja a tartalmat. Nem olyan rég pont ilyen gondom volt, azt akartam elérni, hogy bizonyos admin oldalon (hírszerkesztés) ne érjen timelimitbe a szerkesztő, mert amúgy biztonségi okból korlátozva volt időben, hogy "oldalt kell váltani". Ha jól emlékszem az lett erre a megoldás, hogy a kérés URL-jéhez hozzácsaptam paraméternek véletlen sztringet + időbélyeget, így látszólag mindig más URL-t kértem ajax-al. Persze szerveroldalról is jött a "no cache", stb, és a felesleges paramétert dobtam.
Szerintem ajaxot csak ott használjunk, ahol "muszáj".