【发布时间】:2011-04-20 23:07:00
【问题描述】:
我整天都在寻找 PHP 或 JavaScript 解决方案来执行此操作。
我想提醒用户他们的会话即将超时(弹出窗口),可以延长会话时间。
如果您在this page 上需要,这里有一张图片
编辑:
如果有帮助的话,jQuery 就是框架
【问题讨论】:
标签: php javascript session
我整天都在寻找 PHP 或 JavaScript 解决方案来执行此操作。
我想提醒用户他们的会话即将超时(弹出窗口),可以延长会话时间。
如果您在this page 上需要,这里有一张图片
编辑:
如果有帮助的话,jQuery 就是框架
【问题讨论】:
标签: php javascript session
比较简单:
使用setTimeout构建一个在(会话生命周期 - 5 分钟)分钟内触发的 JavaScript 计时器
让setTimeout 函数显示一个确认对话框,例如使用jQuery UI Dialog
如果用户想要延长会话,请向 PHP 文件发出 Ajax 请求。如果文件使用会话,这将“触及”会话的生命周期
发出请求后,设置另一个setTimeout,在会话即将到期时触发。
我会建议一种不同的方法;无论如何,只需刷新用户的会话。大多数不必要的会话死亡发生是因为
如果有确认对话框,当您的用户回来时会话已经结束 - 只会增加混乱。
改为:
var refresh_session = function () {
$.get("/refresh_session.php");
},
fifteen_minutes = 15 * 60 * 1000;
setInterval(refresh_session, fifteen_minutes);
--> 快乐的用户! :-)
【讨论】:
您可以通过在 JS 计时器上返回 1x1 像素图像的脚本来回避这个问题。这个想法是你从这样的 PHP 脚本开始(不确定这里的标头调用是否完全正确..):
header("ContentType: image/gif");
passthru("my-1x1.gif");
现在,让 javascript setInterval 函数以合适的间隔(即小于会话 GC 间隔)调用此脚本。因为图像是通过 PHP 提供的,它会更新您的会话,所以理论上您的用户会话不会结束,只要他们留在您的网站上。
【讨论】: