Per chi fosse interessato, ho messo un po 'di lavoro in una piccola libreria JavaScript che i tempi per quanto tempo un utente interagisce con un web pagina. Ha il vantaggio aggiunto di tracciare con precisione (non perfettamente, però) il tempo di interazione di un utente con la pagina. Ignora volte che un utente passa a diverse schede, diventa inattivo, riduce il browser, ecc.
Modifica: ho aggiornato l'esempio per includere l'utilizzo dell'API corrente.
http://timemejs.com
Un esempio del suo utilizzo:
includere nella vostra pagina:
<script src="http://timemejs.com/timeme.min.js"></script>
<script type="text/javascript">
TimeMe.initialize({
currentPageName: "home-page", // page name
idleTimeoutInSeconds: 15 // time before user considered idle
});
</script>
Se si desidera segnalare i tempi di te al tuo back-end:
xmlhttp=new XMLHttpRequest();
xmlhttp.open("POST","ENTER_URL_HERE",true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var timeSpentOnPage = TimeMe.getTimeOnCurrentPageInSeconds();
xmlhttp.send(timeSpentOnPage);
TimeMe.js supporta anche l'invio di dati di temporizzazione tramite websocket, quindi non è necessario provare a forzare una richiesta HTTP completa nell'evento document.onbeforeunload
.
fonte
2015-01-31 20:27:16
c'è un modo, non avete bisogno di un js per that..you può avviare un timer pageload e continua ad inserire valori nel tuo database. Ti darò solo una demo..attesa 10 min –
L'approccio migliore non sarebbe il conteggio o l'esecuzione di un timer, ma per controllare l'ora su Load e OnBeforeUnload e calcolare la differenza. – Thor84no