jQuery: calcolare il tempo di permanenza su una pagina

jQuery: calcolare il tempo di permanenza su una pagina

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" );
        }
    }); 
})

Torna su