Odeslání ajax požadavku na url z historie prohlížeče – NAJA

jozue
Člen | 5
+
0
-

Ahojte,

pokouším se při kroku zpět do historie odeslat signal pro aktualizování stránky, ovšem nemůžu přijít jak na to.

Krok zpět není ani link ani button ani nic podobného, takže na to asi Naja nereaguje ale pouze zobrazuje z cache, pokud je stránka cachovaná. Potřeboval bych, aby při kroku do historie byl požadavek znovu zpracován Najou. Presenter, vpřípadě odhlášeného uživatele, vrátí e403, jinak by si odhlášený uživatel mohl procházet stránky administrace a e403 by hlásilo nette až při pokusu o zpracování požadavku z administrace např.: přidání příspěvku v blogu.

@jiripudil Je to možné nějak udělat přes Naju nebo to řešit nějak úplně jinak?

Děkuji :)

jiri.pudil
Nette Blogger | 1032
+
0
-

Ahoj, ano, cache snippetů lze vypnout, Naja pak při navigaci zpět posílá nový request. Jen je v takovém případě potřeba pohlídat, aby všechny akce a signály byly ajax-ready.

jozue
Člen | 5
+
0
-

Tím ajax-ready myslíš, aby tím selectorem bylo vlastně vše?

naja.uiHandler.selector = ':not(.noajax)';

Editoval jozue (3. 7. 2021 19:59)

jiri.pudil
Nette Blogger | 1032
+
0
-

Tím ajax-ready myslím to, aby všechny akce na serveru počítaly s tím, že se na ně dá přistoupit ajaxově, a posílaly v takovém případě payload se snippety. Jestli nějaká akce vrátí něco jiného než JSON (třeba HTML kód stránky), Naju to rozbije

jozue
Člen | 5
+
0
-

Dobře, děkuji :)

jozue
Člen | 5
+
0
-

Ještě mě napadla jedna možnost, je možné jednorázově smazat cache historie? Tedy normálně by se pro rychlost cachovala, ale v případě potřeby např. odhlášení by se smazala cache a při průchodu historii by už došlo k reloadu stránky. Bylo by to s Najou možné udělat?

jiri.pudil
Nette Blogger | 1032
+
0
-

Nemyslím si, cache se ukládá do state v záznamu v History API, které neumožňuje manipulovat s minulostí. Ale zkusím se zamyslet, jestli by se do HistoryHandleru nedaly přidat nějaké události při sestavování a obnovování cache, aby šlo chování snáze ovlivnit zvenku.