Calcolare il tempo di permanenza su una pagina è relativamente semplice con jQuery.
La soluzione è la seguente:
var elapsed = 0; // Tempo di permanenza in secondi
var count = function() {
elapsed++;
sessionStorage.setItem( "onpage", elapsed ); // Memorizzo il tempo di permanenza
};
var timer = setInterval( count, 1000 ); // Timer al secondo
$( "a" ).click(function( e ) {
// L'utente naviga su altre pagine del sito
e.preventDefault();
var $a = $( this );
clearInterval( timer ); // Interrompo il timer
var timeOnPage = sessionStorage.getItem( "onpage" ); // Tempo trascorso
// Salvo i dati tramite AJAX
var data = {
page: location.href,
time: timeOnPage
};
$.when( $.post( "/ajax", data ) ).done(function( response ) {
if( response.saved ) {
// Reset
sessionStorage.setItem( "onpage", "0" );
// Azione predefinita
window.location = $a.attr( "href" );
}
});
})