jQuery: refresh parziale degli elementi della pagina

jQuery: refresh parziale degli elementi della pagina

Come possiamo ottenere un refresh parziale di una pagina, ossia il reload di un solo elemento? Con jQuery la procedura non รจ affatto complessa.

Possiamo definire il seguente plugin:


(function( $ ) {
	$.fn.refresh = function( options ) {
		options = $.extend({
			interval: 5000,
			className: "refresh",
			callback: function() {}
		}, options);
		
		return this.each(function() {
			var $element = $( this );
			$element.addClass( "refresh" );
			
			setInterval(function() {
				$element.load( location.href + " ." + options.className + "> *", "", options.callback );
			}, options.interval);
		});
	};

})( jQuery );

Ad intervalli regolari la pagina viene ricaricata utilizzando il metodo .load() che va ad eseguire del codice specifico sull'elemento selezionato. Esempio:


$(function() {
	$( "#test" ).refresh({
		callback: function() {
			console.log( "Refresh" );
		},
		interval: 3000
	});
});

In questo caso ogni tre secondi abbiamo il refresh dell'elemento ed un messaggio alla console JavaScript.

Torna su