Devo rilevare quando un utente non è attivo (non fa clic o non scrive) nella pagina corrente per più di 30 minuti.Come posso rilevare con JavaScript/jQuery se l'utente è attualmente attivo sulla pagina?
Penso che potrebbe essere meglio utilizzare un evento blolling collegato al tag body e quindi continuare a reimpostare un timer per 30 minuti, ma non sono esattamente sicuro di come creare questo.
Ho jQuery disponibile, anche se non sono sicuro di quanto effettivamente utilizzerò jQuery.
Edit: Sono più bisogno di sapere se stanno attivamente utilizzando il sito, quindi fare clic (cambiando campi o posizione all'interno di un campo o selezionando le caselle di controllo/radio) o di battitura (in un ingresso, textarea, ecc) . Se sono in un'altra scheda o utilizzano un altro programma, suppongo che non stiano utilizzando il sito e che pertanto debbano essere disconnessi (per motivi di sicurezza).
Modifica # 2: Quindi tutti sono chiari, questo non è affatto per determinare se l'utente è loggato, autenticato o altro. In questo momento il server effettuerà il login dell'utente se non effettua una richiesta di pagina entro 30 minuti. Questa funzionalità impedisce i tempi in cui qualcuno spende più di 30 minuti per compilare un modulo e quindi invia il modulo solo per scoprire che non sono stati disconnessi. Pertanto, questo verrà utilizzato in combinazione con il sito del server per determinare se l'utente è inattivo (non facendo clic o digitando). Fondamentalmente, l'accordo è che dopo 25 minuti di inattività, verrà presentata una finestra di dialogo per inserire la password. Se non lo fanno entro 5 minuti, il sistema li registra automaticamente e la sessione del server viene disconnessa (la prossima volta che si accede a una pagina, come nella maggior parte dei siti).
Javascript è utilizzato solo come avvertimento per l'utente. Se JavaScript è disabilitato, non riceveranno l'avviso e (insieme alla maggior parte del sito non funzionante) verranno disconnessi la prossima volta che richiederanno una nuova pagina.
Registrazione persone fuori solo per cambiare le schede è probabilmente una cattiva idea - che cosa se avevano bisogno di andare in un'altra scheda o un programma per ottenere informazioni per accedere al tuo modulo, e tornare a scoprire che hai stato disconnesso? Prima di procedere, è necessario considerare prima se è necessario. –
È completamente necessario. Sì, è fastidioso, ma necessario perché abbiamo a che fare con i dati di risposta alle emergenze (ad esempio, gasdotti esplodono) e abbiamo bisogno di mantenere i dati al sicuro e purtroppo gli utenti non sono sempre su macchine sicure (posizione). Non possiamo avere persone sedute e usare l'account di qualcun altro. –
Ok, ma non dimenticare che JS non è affidabile per la maggior parte delle attività sicure, poiché quasi tutti i browser hanno un meccanismo per disattivarlo. Avrai davvero voglia di calcolare il tempo massimo per sederti su una pagina, quindi ogni volta che una pagina viene caricata, memorizzare il timestamp da qualche parte, quindi ogni lato del server d'azione dovrebbe essere controllato contro questo prima di fare qualsiasi cosa. –