Diskuze: Průběžné načítání výsledků pomocí ajaxu

JavaScript JavaScript Průběžné načítání výsledků pomocí ajaxu American English version English version

Aktivity (1)
Avatar
Matěj Strnad:12. června 21:34

Jak mám udělat to že když uživatel bude skrolovat stránku s výsledky tak když bude např. u 8 výsledku tak se mu načte dalších 10 .Na straně serveru si to zvládnu udělat sám ale na straně návštěvníka nevím. Děkuji za odpověď :)

Editováno 12. června 21:35
Odpovědět 12. června 21:34
Ty vaše internety!
Avatar
Matěj Strnad:13. června 6:55

To docela chápu ale nevím jak uďělat to když bude např. u 8 výsledku tak se mu načte dalších 10 výsledků. :)

Nahoru Odpovědět 13. června 6:55
Ty vaše internety!
Avatar
xpoproci
Člen
Avatar
xpoproci:13. června 8:50

Vo väčšine prípadov sa to robí na základe pozície scrollu a veľkosti okna. Samozrejme sa to dá rovnakým spôsobom aplikovať aj na nejaký div.

$(window).scroll(function() { //pri scrollovani
    if($(this).scrollTop() == $(document).height() - $(this).height()) { //ked prides na koniec stranky
           //sem loading dat
    }
});
Editováno 13. června 8:51
Nahoru Odpovědět 13. června 8:50
Motto
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13. června 9:34

Dalo by se to osidit i chytanim onmouseover na jednotlivych vysledcich. Zkontrolujes cislo vysledku-10 a z kontrolujes pocet jiz nactenych. Pokud je malo, nactes dalsi.
Neni to tak spolehlive jako hlidani scrollTop, ale slo by to pouzit. Tak, ono, scroll take neni presne. Tam bys musel vedet, jakou vysku ma kazdy vysledek.

 
Nahoru Odpovědět  -1 13. června 9:34
Avatar
Petr Čech
Redaktor
Avatar
Odpovídá na Peter Mlich
Petr Čech:13. června 9:40

jenže to bude nepoužité na čemkoliv, co nemá myš, takže nějakých 60% zařízení. Navíc je to extrémně neintuitivní.

Nahoru Odpovědět 13. června 9:40
the cake is a lie
Avatar
Petr Čech
Redaktor
Avatar
Petr Čech:13. června 9:42

Já bych začal s tím, že si uděláš to donačítání na tlačítko - jako to má třeba Alza. Potom má smysl se bavit o něčem jako detekci scrollování.

Nahoru Odpovědět  +2 13. června 9:42
the cake is a lie
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13. června 9:45

Jeste by slo udelat tlacitko se sipkou nebo link 'Dalsi'. Udalost click i mouseover.

Jak rikam, ono ani scrolovani neni spolehlive, pokud ho nenapises dobre. V podstate by slo precist offsetTop elementu s vysledky a jeho height.

 
Nahoru Odpovědět 13. června 9:45
Avatar
Odpovídá na Peter Mlich
Vladislav Ladicky:13. června 10:24

Ono to scrolovani spolehlive je. Problém je skôr, či sa infinite scroll hodí do danej aplikácie. Urobiť ho nad zoznamom produktov v eshope mi príde nevhodné, kdežto urobiť ho nad komentármi v detaile produktu mi pripadá v poriadku. Suma sumárum mi infinite scroll pripadá vhodný len na výpis nedôležitých informácií, ako práve komentáre a pod. Všade inde by som použil akúkoľvek formu pageru, napríklad na produkty v danej kategórii.

 
Nahoru Odpovědět  +1 13. června 10:24
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13. června 12:42

U komentaru nevidim duvod do toho tahat ajax. Ty komentare maji tak do 10k. To tam muze byt jenom skryte. Lepsi nez zacinat novy http request (nebo vic), ktery ma jen hlavicku 1k

Editováno 13. června 12:42
 
Nahoru Odpovědět 13. června 12:42
Avatar
Odpovídá na Petr Čech
Matěj Strnad:13. června 14:08

Vím že dotaz bude znít blbě ale sem spíš na PHP: jak mám udělat aby tlačítko spustilo funkci? :)

Nahoru Odpovědět 13. června 14:08
Ty vaše internety!
Avatar
Odpovídá na Peter Mlich
Matěj Strnad:13. června 14:11

Moc tvému komentáři nerozumím :)

Nahoru Odpovědět 13. června 14:11
Ty vaše internety!
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13. června 15:51

Jindřich Máca ti poslal link na clanek, ktery ti to objasni.
Nema smysl resit scrolovani, dokud tam nemas aspon tlacitko, viz Petr Čech, ktere dela samotne doplnovani clanku. A to prave by meli resit ty clanky. Pak z toho tlacitka presmerovat to na scrolovani uz je jen drobna uprava.

Editováno 13. června 15:51
 
Nahoru Odpovědět 13. června 15:51
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:13. června 15:57
<div id=xxx></div>
<input type=button onclick=dopln();>
<script>
function $(id) {return document.getElementById(id);}
function dopln()
{
$('xxx').innerHTML+= 'aaa\n';
}
</script>

Jenom do toho musis zamontovat spravne ten ajax. A az budes mit funkcni jednoduchy kod a ajaxem nebo se ti tam neco nebude darit, pak pokracuj v dotazech.
Jde o to, ze lidi radi poradi, ale forko neni dobrocinnost, udelejte vse za mne, ja jsem tu sef a zadavam ukoly.

Editováno 13. června 15:57
 
Nahoru Odpovědět 13. června 15:57
Avatar
Matěj Strnad:13. června 17:33

Jak mám vypsat ty výsledky aby se vždy vypisovaly za sebe? :)

Nahoru Odpovědět 13. června 17:33
Ty vaše internety!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.