Evaluare utilizator: 0 / 5

Steluță inactivăSteluță inactivăSteluță inactivăSteluță inactivăSteluță inactivă
 

Scenariul este simplu: ai o pagină web, sau poate chiar o webaplicaţie, în care vrei să fructifici timpii morţi. Poate cât timp pagina nu este folosită vrei să preîncarci nişte informaţii… sau să provoci periodic o reîncărcare… sau, ceea ce m-a interesat pe mine de fapt, să de-loghezi (de-autentifici) utilizatorul din webaplicaţie. Codul de mai jos nu îmi aparţine ci l-am găsit aici – eu doar îl semnalez. Şi am să vă spun după cod limitele lui.

var idleTime = 0;
$(document).ready(function () {
    //Creste numaratorul la fiecare minut
    var idleInterval = setInterval(timerIncrement, 60000); // 1 minut

    //Pune pe zero numaratorul la miscarea mouse-ului.
    $(this).mousemove(function (e) {
        idleTime = 0;
    });

    //Pune pe zero numaratorul la apasarea vreunei taste.
    $(this).keypress(function (e) {
        idleTime = 0;
    });
});

function timerIncrement() {
    idleTime = idleTime + 1;
    if (idleTime > 19) { // vor fi trecut 20 de minute
        //Faceti aici orice v-ati propus
    }
}

Deci limitele: dacă aceeaşi pagină e încărcată în mai multe taburi, codul nu face verificări între taburi. Aceasta înseamnă că dacă ai o webaplicaţie cu logare (autentificare) şi e deschisă în două taburi, în unul utilizatorul fiind activ, în altul inactiv (un tab uitat), după timpul x se va produce de-logarea. Ups! Trebuie apelat atunci la ceva metodă mai solidă, de exemplu scrierea locală (în storage-ul navigatorului). La o primă căutare pe net am găsit de exemplu aşa ceva… dar nu merge. Pe moment nu am investit timp în această facilitate, dar la webaplicaţia la care lucrez sigur vreau delogare după câteva minute de inactivitate deci cândva o să duc codul mai departe.

Read more http://feedproxy.google.com/~r/cnetro/~3/NwGAA85nGqA/