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.
Ü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)
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)
É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
nah.. a html nem ment ki :)
szóval a
meta http-equiv=”Cache-Control” content=”max-age=300″
ami nem elég.