Autor | Zpráva | ||
---|---|---|---|
holi Profil |
#1 · Zasláno: 8. 11. 2012, 20:50:50
Zdravím,
tvořím stránku kde se dynamicky pomoci ajax/jquery mění obsah. Abych zachoval funkčnost tlačítek vpřed a vzad používám event popstate, kde se pomocí nové URL načítá požadovaný soubor. Bohužel to má jednu chybičku, pokud vyrefreshuji stránku ať už pomocí F5, tlačítka, nebo zadání stejné url do řádku dojde k dvojitému refreshy. Aby jste to pochopily mám to ošetřené tak aby to fungovalo i s vypnutým JS. Takže pokud zadám URL stránka se normálně načte, bohužel to je i event popstate, takže potom co se stránka celá načte se spustí AJAX a teď už jen obsah načte znovu byť je stejný. Má otázka teda zni. Dá se nějakým způsobem zjistit předchozí URL adresa(neboli adresa ze které uživatel přišel) včetně GET apod. abych ji mohl porovnat se stávající a v případě rovnosti akci zastavit. Předem děkuji za odpověď HoLi |
||
_es Profil |
#2 · Zasláno: 9. 11. 2012, 01:31:53
holi:
Možno pomôže document.referrer. |
||
holi Profil |
#3 · Zasláno: 9. 11. 2012, 09:17:01
To jsem si už vygooglil bohužel když jsem to testoval tak mi to vrací jenom doménu teda například na localhostu http://127.0.0.1, ale ja chci http://127.0.0.1/www/cms/?page=neco
|
||
juriad Profil |
#4 · Zasláno: 9. 11. 2012, 10:21:25
na serveru do stránky přidej nějakou informaci, například:
<div style="display:none" id="refresh"></div> potom při události popstate kontroluj, jestli tento div existuje (getElementById). pokud existuje: není třeba dělat žadné vopičárny s historií a jen div smažeš pokud neexistuje: už proběhla alespoň jedna událost popstate a tedy adresa není aktuální; AJAXem dotáhneš novou stránku (div#refresh z ní odstraníš) snad jem tě pochopil správně |
||
_es Profil |
#5 · Zasláno: 9. 11. 2012, 11:33:06
holi:
Asi na to ideš zle. Používaj nejaký identifikátor obsahu a načítavaj obsah cez JS len vtedy, keď nesedí s adresou. |
||
holi Profil |
#6 · Zasláno: 9. 11. 2012, 14:17:58
juriad:
Děkuju moc pomohlo to :) if($('#refresh').length != 0){ $('#refresh').remove(); return false; } _es: Já si myslím že na to jdu dobře. Znáš nějaký jiný způsob jak na to ? Jsem otevřený lepšímu řešení. |
||
Časová prodleva: 4 dny
|
|||
_es Profil |
#7 · Zasláno: 13. 11. 2012, 09:14:26
holi:
Do adresy dáš nejaký identifikátor unikátneId , v sťahovaných dátach bude tiež nejako obsiahnuté unikátneId a dáta budeš sťahovať len vtedy, ak nebudú súhlasiť.
|
||
Časová prodleva: 11 let
|
0