1
3
我使用的一种技术是:每次调用时增加Ajax调用之间的间隔。所以,在10秒后进行第一次Ajax调用,然后等待11秒、13秒、16秒、20秒、25秒等等…(或者类似的模式)。每次有页面活动(通过注册一些JS事件找到)时,都会将间隔重置回初始值(例如10秒)。 当Ajax间隔比超时时间长时,这种技术最终会导致暂时不接触浏览器的用户超时。作为一个额外的好处,您将减少服务器负载——如果用户长时间保持浏览器窗口打开,他们将在超时前发出越来越少的请求。 |
2
3
我提示用户在一段时间不活动后,通过javascript验证它们是否仍然处于活动状态。不活动被定义为“没有鼠标或键消息发送到窗口”。如果他们在一定时间后没有响应提示,我将重定向到注销页面。 可以找到我的基于jQuery UI的实现 here . |
3
1
我通过在浏览器中维护一个“最后一个操作”时间戳并将其与心跳一起发送回服务器来完成这项工作。然后,在服务器上,我根据这个值和当前时间之间的差异检查是否超时,如果用户空闲时间过长,则调用注销例程。如果会话超时,那么心跳结果将触发浏览器重新加载页面,当会话现在在服务器上注销时,该页面将清除任何用户特定的信息。 我必须用这种方法解决的两个主要问题是服务器和客户机日期函数实现中时区的不同解释,如果用户在同一个浏览器中打开了多个选项卡,将不同的“最后一个操作”时间戳发送回服务器,则可以跟踪最新的操作。 |
James Williams · 如何在单击按钮时刷新div内容 2 年前 |
Mehmet · javascript执行了多个 2 年前 |
Shijil · 尝试在Jquery PHP搜索代码中添加选择标记功能 2 年前 |
Parker · 如何使表格行的单元格项加粗n秒? 2 年前 |
Chris J. · ajax获取查找数据属性值的请求 2 年前 |
Pedro F · Ajax调用后脚本运行不正常 2 年前 |