创建不受页面刷新影响的计时器或警报

时间:2011-07-19 23:51:27

标签: php javascript mysql timer alert

我想在我的网站上创建一个计时器/警报,提示用户自登录后1小时。 刷新页面时,计时器不应从头开始。我尝试使用

setTimeout(function(){
  alert('signout!!');
}, 10000);

只要我不刷新页面,它就可以正常工作。欢迎任何想法。有没有办法从db计算时间?我将日志存储在db。

由于

3 个答案:

答案 0 :(得分:3)

使用Cookie存储开始时间。在页面加载时,您可以检查cookie,并相应地设置计时器。

当计时器到达小时标记时,或者在达到标记后加载页面时,提示用户并删除co​​okie。

要在Javascript中设置Cookie,请查看此页面: http://www.w3schools.com/js/js_cookies.asp

答案 1 :(得分:0)

将计时器绑定到特定日期/时间 - 在页面加载时,找出将来该时间点之前的剩余秒数,并相应地设置超时。您可以在客户端或服务器上执行此操作。无论哪种方式。

答案 2 :(得分:0)

我得到了这样的解决方案。 在<head>代码

<?php
                $cur_id = $_SESSION["cur_id"];      
                $st="select crStarttime, ADDTIME(crStarttime, '1:00:00') as en from callrecord where crID  = '$cur_id'";
                $rt = mysql_query($st);
                $r = mysql_fetch_array($rt);
                $starttime = $r['crStarttime'];
                $endtime=$r['en'];
            ?>      
            <script>
                var endtime = "<?php echo $endtime;?>";
            </script>
            <script type="text/javascript">
                function startTime()
                {
                    var today=new Date();
                    var h=today.getHours();
                    var m=today.getMinutes();
                    var s=today.getSeconds();
                    // add a zero in front of numbers<10
                    m=checkTime(m);
                    s=checkTime(s);
                    document.getElementById('txt').innerHTML=h+":"+m+":"+s;
                    var curtime =h+":"+m+":"+s; 
                    t=setTimeout('startTime()',500);
                    if(curtime==endtime)
                    {                   
                        alert("Time to signout.");
                    }                       

                }
                function checkTime(i)
                {
                    if (i<10)
                    {
                        i="0" + i;
                    }
                    return i;
                }
            </script>

然后在身体

<div id="txt"></div> // just to print the current time.