Naja – ajax – append ⇒ F5 a nekonzistence
- Kcko
- Člen | 470
Ahoj,
pro JS obsluhu používám NAJU, k tomu mám nějaký výpis včetně
stránkování. To stránkování není klasické 1,2,3 … ale tlačítko
načíst další.
Na snippetu používám data-naja-snippet-append, abych apendil
jen nové záznamy po kliku načíst další.
Samozřejmě se mění url, ?page=1, page=34 atd. Potud vše v pořádku.
Pokud jsem na nějaké stránce a zmáčknu refresh (F5), tak vlastně vidím, jen do pod poslední načtenou stránkou, ne všechny záznamy od začátku až po aktuální stránku. Je to logické, ale teď mě nenapadá, abych zachoval AJAX chování s apendem a při případném refreshi se musí zobrazit vše od 1 až do aktuální stránky.
Můžu pozměnit logiku, že nebudu apendit, ale překreslovat snippet pořád dokola a zvyšovat limit, ale to to je až poslední řešení.
Jak to řešíte vy? Nepotřebujuji žádné ohrombózní řešení, něco snadného a elegantního :-)
- Šaman
- Člen | 2667
Imho budeš muset vytvořit druhý parametr pageFrom
, protože
ten parametr, který píšeš, že měníš, neodpovídá zobrazeným
záznamům. Ty nemáš zobrazenou jen ?page=34
, ale vše od
stránky 1 do 34.
Jinak co jsem tak koukal, spousta eshopů to neřeší a když dám dejme tomu „načíst dalších 10“, pak kliknu na nějaký detail a vrátím se zpět, tak se divím, proč tam nemám stejné záznamy, jako předtím. A je to přesně z tohoto důvodu :)
Edit: Případně, pokud to máš vždy od první stránky, tak při
neajaxovém požadavku selectneš vše od 1 do page
, při
ajaxovém požadavku jen tu jednu stránku, která se appendne.
Editoval Šaman (19. 11. 2022 18:44)
- Marek Bartoš
- Nette Blogger | 1280
Existuje i prepend, když budeš scrollovat nahoru
https://naja.js.org/#…
- Kcko
- Člen | 470
Je to vlastně jednoduché, jsem unaven a vůbec mě to nenapadlo, samozřejmě, že stačí rozlišit Ajaxový vs Neajaxový požadavek a dle toho se zařídit. Člověk to napsal milionkrát a stejně …
Díky všem za rychlé nakopnutí ;-)
@MarekBartoš jak je to míněno, když budu skrolovat nahoru?
- Marek Bartoš
- Nette Blogger | 1280
Stejně jako načítáš následující výsledky při scrolování dolu můžeš načítat předcházející při scrolování nahoru. Nemusíš tak načítat naráz potenciálně stovky stránek.