Étant donné que vous ne voulez pas changer le délai d'attente de la session du site ..
Définir un événement délai d'attente/intervalle (< 15min) en javascript et décider ce qu'il faut faire lorsque l'événement se déclenche. Si vous voulez que la session soit active aussi longtemps que la page est ouverte, alors bien, continuez à cingler tous les < 15 min. Mais ce n'est probablement pas ce que vous voulez car un utilisateur quittant un ordinateur public devrait être déconnecté à un moment donné.
Vous pouvez gérer une variable lastActivity
, qui est mise à jour sur chaque document mousemove ou document keydown. S'il y a eu une activité depuis le dernier ping, ping de nouveau. Pour plus de sophistication, vous pouvez compter les événements et envoyer une requête ping au serveur uniquement si le nombre d'événements> seuil à la fin du délai d'attente est dépassé.
L'exemple de base:
setInterval(function(){
$.get('/ImStillAlive.action');
}, 840000); // 14 mins * 60 * 1000
Avec vérification de base pour l'activité en tapant:
$(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();
});
});
15 minutes semble terriblement court. Ne pourriez-vous pas augmenter le délai d'attente? – Eli