jQuery: caricare i contenuti quando l'utente scrolla la pagina

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);
});
Torna su