我正在使用JavaScript和jQuery的胖客户端应用程序。我的会话超时45秒或更长时间(取决于不同的业务/用户)。使用Javascript的定时器显示/ jquery
当前超时事件由我无权访问的供应商代码触发。如果发现会话超出特定时间阈值(例如:25秒),我想在屏幕上显示计时器。
与此同时,计时器也应该与第三方计时器(我无法访问)匹配(边际差异可以管理)。
有人可以为此提出最佳解决方案吗?
我正在使用JavaScript和jQuery的胖客户端应用程序。我的会话超时45秒或更长时间(取决于不同的业务/用户)。使用Javascript的定时器显示/ jquery
当前超时事件由我无权访问的供应商代码触发。如果发现会话超出特定时间阈值(例如:25秒),我想在屏幕上显示计时器。
与此同时,计时器也应该与第三方计时器(我无法访问)匹配(边际差异可以管理)。
有人可以为此提出最佳解决方案吗?
晕,
我终于设法在我的应用程序(基于触摸)尝试计时器。以下代码适合我。
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");
这是值得分享您已有的任何代码,以便我们可以为您提供更精确的建议。
但是,为了给您一些指导,请参阅JavaScript window.setTimeout() method。它在一段时间之后基本上会触发回调。如果你的供应商使用JavaScript来跟踪时间,那么这是相当安全的,那么这也是他们将使用的基本方法。
您可以非常容易地设置和重置timeout
,因此一旦设置,您就可以监听用户交互事件(滚动,点击等)并使用这些事件触发超时重置(将“倒计时”返回开始)。
做一点研究,我相信你能够开发出合适的解决方案!
关于与供应商的超时接口问题,没有更多信息,我们都无法提供帮助。这听起来不像你有任何控制权,所以它可能是不可能的(可能联系供应商并询问?)。
如果您知道每个用例的超时限制,可以确保超时限制与他们的超时限制匹配。然而,考虑到代码重复性,这将会有点烦人,并且也意味着如果您的供应商更改其计时,您的应用程序将会“中断”。
TL/DR:如果您想编写将执行您所描述的操作的代码,请阅读JavaScript window.setTimeout() method。但是,薄弱环节将是您无法访问您的供应商的超时例程。考虑到这一点,我的第一步就是联系供应商并询问,他们可能在他们的API中已有一些您不知道的东西!
嗨,John和Matt,我是JS和Jquery的新手。我尝试了一些我在互联网上找到的东西...但后来发现它可能不适合目的(我可能在这方面是错误的)。这就是为什么决定问专家而不是自己挖掘。 – Subash
好吧,我不知道你这个逻辑,但对于jQuery插件定时器在谷歌一个简单的搜索给我:
http://www.tripwiremagazine.com/2013/04/jquery-countdown-scripts.html
很多......他们的
希望一个服您的需求。
您尝试过什么吗? –