php ajax自动注销与计时器

时间:2010-09-27 07:46:00

标签: php javascript jquery ajax

<script type="text/javascript">
var t;
function startTimer(){
t=setTimeout("document.location='../login/logout.php'", 50000);
}

function  stopTimer(){
clearTimeout(t);
}
</script>

这是我自动注销的脚本,

我想显示倒计时器,如何创建和显示计时器,

此外,我想在用户点击页面正文时生效,

此外,计时器应该重置,然后在系统空闲时重新启动,

如何制作,

(计时器应显示,即  当人们没有接触到系统时,计时器应该运行,

如果用户触摸系统,则计数器应重新启动)

3 个答案:

答案 0 :(得分:3)

使用此功能:

function timer(elem, starttime, endtime, speed, funktion, count) {
    if (!endtime) endtime = 0;
    if (!starttime) starttime = 10;
    if (!speed) speed = 1;
    speed = speed * 1000;
    if ($(elem).html() || $(elem).val()) {
        if (count == "next" && starttime > endtime) starttime--;
        else if (count == "next" && starttime < endtime) starttime++;
        if ($(elem).html()) $(elem).html(starttime);
        else if ($(elem).val()) $(elem).val(starttime);
        if (starttime != endtime && $(elem).html()) setTimeout(function() {
            timer(elem, $(elem).html(), endtime, speed / 1000, funktion, 'next');
        }, speed);
        if (starttime != endtime && $(elem).val()) setTimeout(function() {
            timer(elem, $(elem).val(), endtime, speed / 1000, funktion, 'next');
        }, speed);
        if (starttime == endtime && funktion) funktion();
    } else return;
}

Example

timer("#timer", 50, 0, 1, function() {
    location.href = "../login/logout.php";
});

答案 1 :(得分:2)

我的例子:

更新以检查用户是否空闲(设置为2秒,这使测试更容易,我建议至少5或10分钟)。

<body onload="setTimeout('startCountDown()',2000);" onmousemove="resetTimer();">

<form name="counter"><input type="text" size="5" name="timer" disabled="disabled" /></form> 


<script type="text/javascript"> 
<!--   
 // edit startSeconds as you see fit 
 // simple timer example provided by Thomas

 var startSeconds = 10;
 var milisec = 0;
 var seconds=startSeconds;
 var countdownrunning = false
 var idle = false;
 document.counter.timer.value=startSeconds;

function CountDown()
{ 
    if(idle == true)
    {

        if (milisec<=0)
        { 
            milisec=9 
            seconds-=1 
        } 
        if (seconds<=-1)
        { 
            document.location='../login/logout.php';
            milisec=0 
            seconds+=1 
            return;
        } 
        else 
        milisec-=1; 
        document.counter.timer.value=seconds+"."+milisec;
        setTimeout("CountDown()",100);
    }
    else
    {
        return;
    } 
}
function startCountDown()
{
   document.counter.timer.value=startSeconds;
   seconds = startSeconds;
   milisec = 0

   document.counter.timer.style.display = 'block';
   idle = true;
   CountDown();
   document.getElementById("alert").innerHTML = 'You are idle. you will be logged out after ' + startSeconds + ' seconds.';
   countdownrunning = false;   
}

function resetTimer()
{ 
    document.counter.timer.style.display = 'none';
    idle = false;    
    document.getElementById("alert").innerHTML = '';


    if(!countdownrunning)
        setTimeout('startCountDown()',2000);

    countdownrunning = true;

}

--> 
</script>

答案 2 :(得分:1)

我的代码在这里...经过一些修改......它对我有用......

var startSeconds = 10;
var milisec = 0;
var seconds=startSeconds;
var countdownrunning = false
var idle = false;
document.counter.timer.value=startSeconds;

function CountDown()
{ 

if(idle == true)
{

    if (milisec<=0)
    { 
        milisec=9 
        seconds-=1 
    } 
    if (seconds<=-1)
    { 
        document.location='../login/logout.php';
        milisec=0 
        seconds+=1 
        return;
    } 
    else 
    seconds-=1; 
    setTimeout("CountDown()",1000);
}
else
{
    return;
} 
}

function startCountDown()
{
   seconds = startSeconds;
   milisec = 0

   idle = true;
   CountDown();
   document.getElementById("alert").innerHTML = 'You are idle. you will be logged out after ' + startSeconds + ' seconds.';
   countdownrunning = false;   
}

function resetTimer()
{ 
    idle = false;    

    if(countdownrunning)
        setTimeout('startCountDown()',2000);

    countdownrunning = true;

}