我有一个警报,该警报将在用户会话即将到期或确实到期时弹出。问题是,如果为该应用程序打开了多个选项卡,则将连续触发多个警报,这非常烦人。
我想在显示警报之前在后端检查会话信息。这样,如果会话在一个选项卡中即将到期(根据前端),但实际上并没有要到期,因为您一直在另一个选项卡中进行操作,则警报将不会显示并且不会占用浏览器焦点。理想情况下,我希望将其保留为警报,因此警告的第一个适当显示确实会引起浏览器的注意。
因此,可以在不刷新会话的情况下发出这样的请求吗?
最佳答案
试图在JavaScript中做到这一点很愚蠢-很难让倒数计时器与PHP会话保持同步。
如果要在会话上实现硬超时,则必须已经在使用自定义会话处理程序-只需在Ajax响应器中实现该变量的变体即可,它不会锁定或写回会话。
OTOH,如果您并未真正实现硬会话超时,并且尚未使用自定义会话处理程序(我怀疑确实是这种情况)。然后,只需检查会话文件上的时间戳即可。