jquery/javascript creating a logout timer -
i have been trying create timer log clients out when have been idol on 10 minutes. have created code below works fine long user not open sec tab. have many clients open sec window or tab , while sec tab open counter speeds up. looking way improve next code tabs/windows can in improve sync.
var cookies='off'; // var check if cookies turned off var alerttimes=0; // alturnative cookies $(function(){ resetcookies(); var logintime=getcookie("logintime"); if (logintime!=null && logintime!=""){ cookies='on'; } checkalerts(); }); function resetcookies(){ setcookie("logintime",'10',1); alerttimes=0; } function checktime() { if(cookies=='on'){ var logintime=getcookie("logintime"); if (logintime!=null && logintime!=""){ var newtime=logintime-1; if(newtime==0){ autologout(); homecoming false;} setcookie("logintime",newtime,1); }else{ autologout(); homecoming false;} }else{ alerttimes++; if(alerttimes>=10){ autologout(); homecoming false;} } settimeout(checktime, 600000); } function setcookie(c_name,value,exdays){ var exdate=new date(); exdate.setdate(exdate.getdate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toutcstring()); document.cookie=c_name + "=" + c_value; } function getcookie(c_name){ var i,x,y,arrcookies=document.cookie.split(";"); (i=0;i<arrcookies.length;i++){ x=arrcookies[i].substr(0,arrcookies[i].indexof("=")); y=arrcookies[i].substr(arrcookies[i].indexof("=")+1); x=x.replace(/^\s+|\s+$/g,""); if (x==c_name){ homecoming unescape(y); } } } function autologout(){ window.location.href=("logout.php"); }
maybe illustration satisfy needs?
( function ( $ ) { $.logintimeout = function ( options ) { var opts = $.extend( {}, $.logintimeout.defaults, options ), callback = function() { $.getjson( opts.url, function ( info ) { if(data.status === "signed_out") document.location = opts.redirectto; }); }; setinterval( callback, opts.timeout * 1000 ); }; $.logintimeout.defaults = { timeout: 60, redirectto: "/login", url: "/check_login" }; } ( jquery ) ); // ... $.logintimeout({ redirectto: "/users/sign_in", url: "/users/check_status" }); also maintain in mind in illustration server application deciding if user session has expired
javascript jquery
No comments:
Post a Comment