题
在我正在开发的应用程序中,我必须存储某些特定用户仍然登录到应用程序的时间,不幸的是,在Web应用程序中,用户可以通过多种方式注销。
- 用户点击注销。
- 用户会话到期。
- 用户关闭窗口。
- 用户在地址栏中输入其他网站网址。 醇>
第一个很容易,因为应用程序可以控制注销过程。但在其他方面,它变得棘手。
你会怎么做才能解决这个问题?
解决方案
在每个页面视图上,更新您的计数。如果他们退出,那么你就有了准确的衡量标准。如果他们离开了,或者任何其他方法,那么你出去的最多就是他们在一页上的时间长度。
如果真的非常对于准确度量非常重要,那么可能是AJAX“心跳”。每一分钟,但这很可能是矫枉过正。
其他提示
对于#3和#4,你可以在window.onunload事件上附加一些东西,让你有时间进行计算,但要小心你的代码足够快,以至于在你的AJAX请求之前页面没有完全卸载被发送。
就#2而言,“心跳”指的是“心跳”。 nickf建议可能是那里最好的解决方案。
不隶属于 StackOverflow