Dato non si desidera cambiare il timeout sessione del sito ..
Impostare un evento di timeout/intervallo (< 15min) in javascript e decidere cosa fare quando l'evento attiva. Se vuoi che la sessione sia attiva fino a quando la pagina è aperta, allora bene, continua a pingare ogni < 15 min. Ma probabilmente non è quello che vuoi, dato che un utente che lascia un computer pubblico dovrebbe essere disconnesso a un certo punto.
È possibile mantenere una variabile lastActivity
, che viene aggiornata su ogni documento mousemove o keydown del documento. Se c'è stata un'attività dall'ultimo ping, eseguire nuovamente il ping.
Per essere più sofisticati, è possibile contare gli eventi e eseguire il ping del server solo se il numero di eventi> soglia al timeout.
L'esempio di base:
setInterval(function(){
$.get('/ImStillAlive.action');
}, 840000); // 14 mins * 60 * 1000
Con controllo di base per l'attività digitando:
$(function(){
var lastUpdate = 0;
var checkInterval = setInterval(function(){
if(new Date().getTime() - lastUpdate > 840000){
clearInterval(checkInterval);
}else{
$.get('/ImStillAlive.action');
}
}, 840000); // 14 mins * 60 * 1000
$(document).keydown(function(){
lastUpdate = new Date().getTime();
});
});
fonte
2010-10-07 00:22:04
15 minuti sembra terribilmente breve. Non potresti semplicemente aumentare il timeout? – Eli