Váš kód jsem viděl v jiné odpovědi a doporučil bych místo kompenzace hodnot použít funkci LIMIT v MySql. Příklad:
SELECT * FROM all_posts ORDER BY post_id DESC LIMIT '".(((int)$page)*5)."',5
To pouze vezme číslo stránky v požadavku AJAX a automaticky získá offset. Je to jeden konzistentní dotaz a funguje nezávisle na posledních výsledcích na stránce. Pošlete něco jako page=1 nebo page=2 v kódu jQuery. To lze provést několika různými způsoby.
Nejprve spočítejte počet prvků vytvořených na stránce a vydělte je číslem na stránce. Tím získáte číslo stránky.
Za druhé, můžete použít jQuery a svázat aktuální číslo stránky s tělem:
$(body).data('page', 1)
Zvyšte jej o jednu při každém načtení stránky.
To je skutečně nejlepší způsob, protože používá jeden dotaz pro všechny operace a nevyžaduje mnoho informací o datech, která již na stránce jsou.
Jediná věc, kterou je třeba poznamenat, je, že tato logika vyžaduje, aby první požadavek na stránku byl 0, nikoli 1. Je to proto, že 1*5 se vyhodnotí jako 5, přičemž prvních 5 řádků se přeskočí. Pokud je 0, vyhodnotí se jako 0*5 a přeskočí prvních 0 řádků (protože 0*5 je 0).
Sdělte mi jakékoli dotazy!