Twitter carica i nuovi tweet ed il contenuto di molte pagine quando l'utente scrolla la pagina. Si tratta di una tecnica jQuery che fa uso di AJAX e dell'evento scroll
. Vediamola in dettaglio.
Il contenuto andrà reperito da uno script lato server che accetta un valore numerico passato tramite una richiesta GET. Questo valore è incrementale e serve a reperire n-risultati dal database.
Quindi quando l'utente scrolla e raggiunge la fine della pagina, il valore viene sempre incrementato e passato allo script remoto che restituisce i risultati sotto forma di stringa HTML.
Il valore incrementale viene registrato in un elemento nascosto (come un input
) e incrementato ad ogni scroll della pagina ma solo se l'utente è giunto alla fine del documento.
Ecco l'implementazione:
var loading = false;
$(window).scroll(function(){
if((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
if(loading == false){
loading = true;
$('#loadingbar').css("display","block");
$.get("load.php?start="+$('#loaded_max').val(), function(loaded){
$('body').append(loaded);
$('#loaded_max').val(parseInt($('#loaded_max').val())+50);
$('#loadingbar').css("display","none");
loading = false;
});
}
}
});
$(document).ready(function() {
$('#loaded_max').val(50);
});