使用Javascript / Jquery显示计时器

时间:2013-06-04 13:16:31

标签: javascript jquery

我正在使用一个使用JavaScript和jQuery的胖客户端应用程序。如果我的会话闲置45秒或更长时间(取决于不同的业务/用户),我的会话就会超时。

目前,超时事件由我无权访问的供应商代码触发。如果发现会话空闲超过特定时间阈值(例如:25秒),我想在屏幕上显示一个计时器。

同时定时器也应与第三方定时器(我无权访问)匹配(可以管理边缘差异)。

有人可以为此提出最佳解决方案吗?

3 个答案:

答案 0 :(得分:1)

值得分享您已有的任何代码,以便我们为您提供更准确的建议。

但是,为了给您一些指导,请查看JavaScript window.setTimeout() method。它基本上会在一段时间后触发回调。可以相当安全地说,如果您的供应商使用JavaScript来跟踪时间,那么这也是他们将使用的基本方法。

您可以非常轻松地设置和重置timeout,这样一旦设置,您就可以监听用户交互事件(滚动,点击等)并使用这些事件触发超时重置(将倒计时'回到开始)。

做一些研究,我相信你能够开发出合适的解决方案!

关于与供应商的超时接口,没有更多信息,我们任何人都无法提供帮助。这听起来不像你对此有任何控制所以它可能是不可能的(也许联系供应商并询问?)。

如果你知道每个用例的超时限制,你可以确保你的超时与他们的超时相匹配。但是,考虑到它的代码重复,这会有点烦人,并且如果您的供应商改变他们的时间,也意味着您的应用程序会“破坏”。

TL / DR:如果您想要编写可以执行您所描述内容的内容,请阅读JavaScript window.setTimeout() method。但是,弱链接将是您无法访问供应商的超时例程。考虑到这一点,我的第一步是与供应商联系并询问,他们可能已经在他们的API中提供了您不知道的内容!

答案 1 :(得分:1)

好吧,我不太了解你的逻辑,但在谷歌搜索jQuery插件计时器的简单搜索给了我:

http://www.tripwiremagazine.com/2013/04/jquery-countdown-scripts.html

很多......

希望其中一个适合您的需求。

答案 2 :(得分:1)

晕,

我终于设法在我的应用程序中尝试计时器(基于触摸)。以下代码适合我。

var count = 50;
$(document).ready(function () {
var Timer = $.timer(function() {
    $('#counter').html("Your Session will expire in " + --count + "seconds");

});
Timer.set({ time : 1000, autostart : true });
    $(this).mousemove(function (e) {
                idleTime = 0;
                count = 50;
                Timer.reset();
                Timer.stop();                   
            });
            $(this).keypress(function (e) {
                idleTime = 0;
                count = 50;
                Timer.stop();
                Timer.reset();
            });

    var idleInterval = setInterval(function (){
        idleTime = idleTime + 1;
        if (idleTime > 10) 
        { 
        Timer.set({ time : 600, autostart : true });            
        $('#counter').css("display", "block");