_nec - webfejlesztés, front-end programozás, javascript, css, xhtml, ajax, air

Oldal pozíció “Vissza” gomb után

Ma halálra idegesített ez a probléma: különböző oldalakon, ha pl lescrolloztam az oldal aljára és onnan elnavigáltam egy másik oldalra, majd a böngésző vissza gombjával visszatértem az előző oldalra, volt hogy a Firefox az oldal tetejére és volt, hogy oda dobott vissza, ahol kattintottam az oldalon. Eleinte valami ID alapú dologra gondoltam, de egy primitív tesztoldallal ezt sikerült cáfolni.

Explorerben következetesen oda rak vissza hol kattint az ember, ezért is idegesített ez a – látszólag véletlenszerű – viselkedés.

Ez így valójában egy erős usability hiba az oldalon, hosszabb találati listáknál nagyon frusztráló tud lenni, így nem árt odafigyelni rá. JS és CSS kukázások után végül a HTTP fejlécek vizsgálatába kezdtem, s meg is lett az ok.

Cache-Control: no-store, no-cache

Ez a dög valahogy bennemaradt az oldallal küldött fejlécekben, lehet hogy alapértelmezett webszerver beállítás, akkor pedig – hacsak a site szerveroldali részében felül nem bírálják – így marad.
Próbaképp átírva valami értékre, az a működés fogadott amit szerettem volna.

header("Cache-Control: max-age=300");

Valószínűleg emiatt a header miatt a FF valóban nem cachelt, s emiatt a Vissza gomb után újratöltötte az oldalt, ami viszont az oldal tetejére ugrott, mint megnyitáskor.

Viszon az, hogy ebbe viselkedésbe a Cache-Control HTTP fejléc hogyhogy nem szól bele IE, safari, opera, chrome böngészőkben… az más kérdés.

cimkék:

Hozzászólások, trackbackek [trackback url]

  1. Beren 09:24 | 2008.09.12

    Üdv! Ha nem csak saját oldalnál idegesít a dolog, akkor érdemes letölteni a RestoreScrollPosition kiterjesztést a http://www.gozer.org/mozilla/extensions/ címről. Nekem sok oldalnál volt ilyen gondom, de már nincs… (:o)

  2. _nec 12:35 | 2008.09.12

    Mint webfejlesztő, pont, hogy a viselkedés hiányára kellett odafigyelnem, szal a kollégák számára se javaslom munkahelyre az emlíett plugint.

    (amugy jopofa kiegészítés, tény)

  3. smart 21:39 | 2008.12.17

    Én is a “halálba idegesítettek” táborába tartoztam. Rögtön szemet szúrt a Cache-Control header, de köszi, hogy így leírtad! Halom teszteléstől, nyomozástól kíméltél meg! Annyit még hozzáfűznék, hogy a

    nem elég neki (FF3), csak az a jó, ha header-ben kapja!
    üdv

  4. smart 21:42 | 2008.12.17

    nah.. a html nem ment ki :)
    szóval a
    meta http-equiv=”Cache-Control” content=”max-age=300″
    ami nem elég.

Szólj hozzá







kategóriák


del.icio.us

  • No bookmarks avaliable.

epp olvasom

  • A Clash of Kings

    A Clash of Kings by George R.R. Martin

flickr

  • Tuomas Holopainen - the Imagineer
  • The Flock
  • Christmas Crow
  • Geek joy
  • Fast Food - extreme edition
  • Teide north side
  • Teide National Park
  • Genesis
  • Rado Cerix
  • werk - _nec
  • werk - Strati

back to index