Naja – ajax – append ⇒ F5 a nekonzistence

Kcko
Člen | 465
+
0
-

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 | 2632
+
+1
-

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)

dms
Člen | 87
+
+1
-

Při ajaxu append a při běžném refreshi vypsat všechny záznamy.

Marek Bartoš
Nette Blogger | 1146
+
0
-

Existuje i prepend, když budeš scrollovat nahoru
https://naja.js.org/#…

Kcko
Člen | 465
+
0
-

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 | 1146
+
0
-

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.

Kcko
Člen | 465
+
0
-

Marek Bartoš napsal(a):

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.

Rozumím, šikovné; zkusím si na to někdy vzpomenout ;-)