Ciao, dovrei ricreare un sistema di caricamento dinamico per un sito di immagini e ho pensato di legarlo allo scrolling, così come avviene in molti siti.
Di per se non è complicatissimo, ho pensato a qualche cosa del genere:
E' solo una bozza!
Limit contiene il limite per la prima query che deve scaricarmi un'altra parte del database ( mettiamo thread di un forum come questo ), scroll parimenti il limite di pagina da cui partire con lo scaricamento del prossimo blocco di thread, ovvero, se scrollando l'utente arriva alla fine schermo, parte la richiesta ajax.
Scroll viene incrementato di un valore ( quanto? Io ho messo arbitrariamente 100px ma c'è la possibilità di scoprire un valore dinamico valido? Non tutti i dispositivi sono uguali ), questo nuovo valore sarà ogni volta il nuovo punto di scarico, che oltre a scaricare dal database aumenta il limit di un certo valore.
Devo mettere un fine, o posso semplicemente tralasciare e verificare la fine del database tamite PHP/MySQL? Credo che qust'ultima opzione sia la migliore, ma comunque mi piacerebbe, una volta arrivati a fine database, comunque di non incrementare ulteriormente lo scroll.
A tal proposito ho scoperto leggendo la documentazione di jquery, che c'è la possibilità di staccare l'evento specifico con $('elemento').off( 'scroll' ); ( per questo non ho usato lo short hand nel codice )
Anzi, trovare un modo per evitare, se l'utente risale in cima, di ricominciare a scaricare anche quello che ha già scaricato, la banda mensile costa ed è limitata!
A tal proposito pensavo che la variabile globale limit possa funzionare allo scopo; quello che è stato scaricato ha anche un preciso limit e quindi scarica solo dal nuovo limit!
Complicato? Sì, forse, bo!
Idee?
Di per se non è complicatissimo, ho pensato a qualche cosa del genere:
Codice:
$(document).ready(function()
{
var limit = 1, scroll = $(elemento contenitore).height();
$('elemento contenitore').on( 'scroll', function()
{
if ( $(document).scrollTop() > scroll )
{
scroll = scroll + 100; // Aumento il prossimo limite di scroll
$('elemento contenitore').load( 'funzione.php', {id: limit}, function()
{
... qui il caricamento dinamico del resto della pagina ...
limit = limit + 10; // Limite per la query sql.
});
}
};
});
Limit contiene il limite per la prima query che deve scaricarmi un'altra parte del database ( mettiamo thread di un forum come questo ), scroll parimenti il limite di pagina da cui partire con lo scaricamento del prossimo blocco di thread, ovvero, se scrollando l'utente arriva alla fine schermo, parte la richiesta ajax.
Scroll viene incrementato di un valore ( quanto? Io ho messo arbitrariamente 100px ma c'è la possibilità di scoprire un valore dinamico valido? Non tutti i dispositivi sono uguali ), questo nuovo valore sarà ogni volta il nuovo punto di scarico, che oltre a scaricare dal database aumenta il limit di un certo valore.
Devo mettere un fine, o posso semplicemente tralasciare e verificare la fine del database tamite PHP/MySQL? Credo che qust'ultima opzione sia la migliore, ma comunque mi piacerebbe, una volta arrivati a fine database, comunque di non incrementare ulteriormente lo scroll.
A tal proposito ho scoperto leggendo la documentazione di jquery, che c'è la possibilità di staccare l'evento specifico con $('elemento').off( 'scroll' ); ( per questo non ho usato lo short hand nel codice )
Anzi, trovare un modo per evitare, se l'utente risale in cima, di ricominciare a scaricare anche quello che ha già scaricato, la banda mensile costa ed è limitata!
A tal proposito pensavo che la variabile globale limit possa funzionare allo scopo; quello che è stato scaricato ha anche un preciso limit e quindi scarica solo dal nuovo limit!
Complicato? Sì, forse, bo!
Idee?