Autor Zpráva
Marti_n
Profil
Zdravím,

Zoberme si teoreticky. Máme tabuľku s príspevkami príklad na tomto fóre. Nemáme to tak, že zobrazujeme počet strán, ale iba tlačítko "load" (ktoré nám dogeneruje ďalšie príspevky). Máme 1000 príspevkov a zobrazujeme prvých 20. Musíme zistiť či je príspevkov viac ako 20, aby sme mohli prípadne zobraziť tlačítko "load". Po stlačení tlačítka sa dogeneruje ďalších 20 príspevkov a cyklus sa opakuje, zase sa zistuje či zobraziť tlačítko "load" atď. Napadli ma 3 varianty ako vyriešiť to zobrazovanie tlačítka.

1) SELECT count(*) .... // zobrazí 980 rows, ak nerátame tých 20 zobrazených
2) SELECT id .... LIMIT 1 // zobrazí mi 1 row ale s vytiahnutím id, ktoré nepotrebujeme
3) Spravíme prvú variantu pri prvom zobrazení príspevkov, hodnotu 980 uložíme príklad do SESSIONS a pri ďalšom teoretickom generovaní príspevkov už čerpáme hodnotu zo SESSION.

Ja sa prikláňam k tretej variante. Aký máte názor na to vy?
Kcko
Profil
1) Je rychlé dostatečně a vhodné.
2) I tak můžeš, ale ten LIMIT bude pomalejší (budeš muset použít ORDER)
3) Nesmysl, co když během doby co je to uložené v SESSION dojde k novému příspěvku? Hodnota v session se současným stavem nebude korespondovat.


1!
Marti_n
Profil
Jasné, tá 3-ka má tú nevýhodu, takže ostanem u 1-ky.
joe
Profil
Není jednodušší vždy vybrat o jeden řádek navíc a zobrazit požadovaný počet?

Tzn., že pokud chceš 20 záznamů zobrazit a pak ukázat tlačítko pro načtení dalších, vyberu z databáze 21 záznamů, zobrazím jich 20, pokud jich je ve skutečnosti 21, tak vím, že tlačítko mám zobrazit.
Marti_n
Profil
No to čo si napísal je podobné variante 2, ale podľa mňa by to nebolo dobré, lebo vyťahujem okolo 5 stlpcov na riadok. Takže keď tak by som spravil nový sql dotaz a to "SELECT id FROM ... LIMIT 20,1" .
Alphard
Profil
Jestli ty sloupce nemají aspoň desítky kilo, tak takové hlouposti neřeš :-) Řešení v [#4] joe se mi zdá velmi dobré, zřejmě lepší než další dotaz.
Marti_n
Profil
To riešenie od joe, má svoju výhodu, že všetko sa ťahá jedným dotazom :) Ono teoreticky by sa dala použiť aj tretia varianta, pretože príspevky su zoradené od najnovších. Teda generujú sa už iba staršie príspevky.
Alphard
Profil
Já jsem snažil spíš naznačit, že tyto „optimalizace“ jsou spíš ztrátou času programátora.
Pokud jde o 3. bod, souhlasím s [#2], že je to nesmysl. Spíš ale kvůli pracnosti to programovat a udržovat, nedělal bych to.
Marti_n
Profil
Ja som to pochopil čo si chcel/chceli naznačiť :) Čas pritom nestrácam, len ma to zaujímalo ako to vidíte vy ostatní, ale rozhodol som sa to vyriešiť ako písal joe. Teda vytiahnem 21 príspevkov a podľa toho zobrazím button.
joe
Profil
Záleží o jaký výpis jde, ale dobré může být, aby ten poslední záznam nebyl úplně zahozen ho zobrazit jen z části, například jako je na sbazar.cz a zaskroluješ dolů, uživatel už tak dostává dobrý pocit, že seznam pokračuje :-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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