如何每60秒发送最简jQuery AJAX请求维持用户活跃状态?
页面后台定时发送请求维持用户ACTIVE状态的最简实现
没问题,这事儿很简单!要实现页面打开期间每60秒自动向服务器发送请求,把用户状态保持为ACTIVE,而且不需要处理服务器响应,用jQuery可以这么写:
setInterval(function() { $.get('path/to/keep-user-active.php'); }, 60000);
为啥不用你提到的$(document).load()?
其实$(document).load()是用来加载HTML片段并插入到页面里的,更偏向于内容更新场景。而$.get()是jQuery专门的GET请求方法,用来做这种只需要触发服务器操作、不需要处理返回内容的场景更合适,代码语义也更清晰。
可选的小优化
如果怕请求没完成就发下一个(比如网络慢的时候),可以加个简单的防重复逻辑,避免给服务器添负担:
let isRequestRunning = false; setInterval(function() { if (!isRequestRunning) { isRequestRunning = true; $.get('path/to/keep-user-active.php') .always(function() { isRequestRunning = false; }); } }, 60000);
至于服务器端的keep-user-active.php,只需要完成用户状态更新的逻辑就行,不用返回任何内容——反正前端也不需要处理响应~
内容的提问来源于stack exchange,提问作者medk
相关产品推荐
相关产品推荐

