Jquery keep Alive/任何客户端交互
Jquery keep Alive / Any client side interaction?
我使用了一些jquery keepalive会话插件,但没有问题。
有人问我一些不同的东西。
我们有一些相当大的表单(在我开始这里之前构建),用户在其中工作一段时间。页面永远不会刷新,因此他们单击保存,会话将过期并重定向到登录页面。
我建议使用其中一个插件,它只需在会话到期前几分钟提示用户,就可以调用ajax来保持会话的有效性。
然而,他们表示,如果他们没有看到提示,错过了所有提示并将其注销,会怎么办。
他们希望我检查
- 用户在过去5分钟内是否与页面进行过任何交互。如果Yes=Ajax调用以保持会话有效,则重置计时器。如果否,请继续等待,直到我们在会话超时后2分钟内到达并提示用户
他们试图避开提示。
JS/Jquery是否可以知道页面是否有任何客户端交互?
与其用计时器检查他们在过去5分钟内是否有任何互动,难道你不能在表单更改时发送你的保活信息吗?它将消除对定时器循环和小负载ajax调用的需求,仅仅为了保持会话的活力,这根本不会影响性能。
如果您仍然希望保持计时器循环,我仍然建议在表单元素上使用change事件。改变形式意味着他们在与之互动,我认为这满足了他们的要求。
编辑:更新以使用计时器
var idle = true;
function finalIdleCheck(prompt){
if(idle){
if(prompt){
alert("last warning!");
}
//Tighten the idle check time loop; may even want to go < 30s
setTimeout(finalIdleCheck, 30*1000);
} else {
//Ajax stuff to keep session alive
idle = true; //Reset idle flag
}
}
function checkIdle(){
if(idle){
//Warn them
alert("You've been idle");
setTimeout(function(){
finalIdleCheck(true);
}, 60*2*1000);
} else {
//Ajax stuff to keep session alive
idle = true; //Reset idle flag
}
}
$(document).ready(function(){
$("form input").on("change", function(){
idle = false;
}
setTimeout(idleCheck, 60*5*1000);
}
相关文章:
- 用于编写与我作为客户端查看的网页交互的脚本的术语(如果有的话)是什么
- Jquery keep Alive/任何客户端交互
- 在C#中,我如何对客户端用户交互和javascript(jQuery)代码进行单元测试
- 如何使用 Response 类创建要下载的文件,然后与客户端交互
- 为什么服务器端和客户端脚本无法交互
- 服务器端(python)和客户端(javascript)设计和交互
- 如何扩展 EJSON 以序列化 Meteor 客户端-服务器交互的 RegEx
- 与命令行客户端交互
- 客户端JavaScript和数据库交互
- 服务器与客户端交互,反之亦然
- 从web应用程序,如何在没有用户交互的情况下在客户端计算机上运行exe
- 聊天应用程序-测试两个客户端之间的交互
- 如何与客户端javascript文件交互MongoDB/Express Router文件
- 富客户端与JQuery等的交互——最健壮的方法
- 允许两个客户端在没有服务器的情况下交互
- 两个Node服务器可以同时运行并交互吗,这样其中一个服务器就是为客户端服务的中介
- 是否可以通过网络应用程序与任意客户端外围设备进行交互
- 服务器上的脚本与客户端 Javascript 交互
- 最佳服务器API和客户端Javascript交互方法
- 在JavaScript中与文件客户端交互