FAQ |
Kalender |
2010-02-05, 17:04 | #1 | ||
|
|||
Flitig postare
|
Jag har en site där jag laddar innehåll med AJAX och ändrar hash-värdet i adressfältet när innehållet ändras, på så sätt kan jag ju ladda rätt innehåll om användaren klistrar in en länk.
Jag skulle dock även vilja låta användaren använda "tebaks"-funktionen i webläsaren men problemet där är ju att webläsaren inte ser det som en ny sida om bara hash-värdet ändras. Det finns visserligen ett par JQuery-plugins som löser det här, men hur fungerar de egentligen? Hur löser de problemet med att veta när hash-värdet ändras? Ligger de och kollar x antal gånger per sekund eller finns det något event för tillbaks-knappen? Skulle bara behöva just tillbaks-knappseventet och inte allt annat som dessa JQuery-plugins skickar med. |
||
Svara med citat |
2010-02-05, 18:36 | #2 | ||
|
|||
Administratör
|
Det finns en onhashchange event men stöds bara av Firefox 3.6, IE8 och eventuella nya browsers som implementerade det sen jag kollade upp det :P
Oavsett så är inte stödet i närheten av heltäckande. I stort sett alla implementationer av historik/bokmärke etc för ajax-applikationer använder, som du antar, en timeout som kollar hash-värdet och triggar funktionen om det förändrats. Det finns några försök till alternativa sätt, men av de jag sett verkar alla sämre rent funktionellt och prestanda-förbättringen extremt minimal. |
||
Svara med citat |
2010-02-05, 19:04 | #3 | ||
|
|||
Nykomling
|
Kod:
setInterval(function () { var hash = document.location.hash.substr(1); if (hash != window.last_hash) { window.last_hash = hash; /* gör något med hash */ } }, 200); |
||
Svara med citat |
2010-02-05, 19:12 | #4 | ||
|
|||
Flitig postare
|
OK, tack. Ska testa något liknande!
|
||
Svara med citat |
Svara |
|
|