Autor Zpráva
holi
Profil
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
holi:
Možno pomôže document.referrer.
holi
Profil
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
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
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
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í.
_es
Profil
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ť.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0