统计当前在线人数,相当准确

本文介绍了一种高效的方法来准确统计当前在线人数,包括页面加载时使用同步ajax增加在线人数,以及通过监听session销毁事件减少在线人数。同时,文章详细阐述了服务器端的逻辑实现,包括将用户ID放入集合进行在线人数统计,以及从集合中删除用户ID以减少在线人数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此方法能准确的统计当前在线人数,避免刷新,直接关闭浏览器操作。

一、在主页面中,当页面加载完毕时,使用同步ajax向服务器发送请求,增加在线人数。然后注册window.onunload事件,在此事件处理器中,使用同步ajax向服务器发送请求,减少在线人数。

二、监听session销毁事件,减少在线人数。(主要是避免浏览器崩溃,或者断电等意外情况发生时,window.onunload事件处理器无法执行)。


服务器端,增加在线人数逻辑:

将用户id,放入set中。(如果没有此id,则加入之,如果有此id,则加不进去)。

服务器端,减少在线人数逻辑:

从set中删除用户id。(如果有此id,则删除之,没有此id,则删不掉)。


小美的朋友关系 小美认为,在人际交往中,但是随着时间的流逝,朋友的关系也是会慢慢变淡的,最终朋友关系就淡忘了。 现在初始有一些朋友关系,存在一些事件会导致两个人淡忘了他们的朋友关系。小美想知道某一时刻中,某两人是否可以通过朋友介绍互相认识? 事件共有 2 种: 1 u v:代表编号 u 的人和编号 v 的人淡忘了他们的朋友关系。 2 u v:代表小美查询编号 u 的人和编号 v 的人是否能通过朋友介绍互相认识。 注:介绍可以有多层,比如 2 号把 1 号介绍给 3 号,然后 3 号再把 1 号介绍给 4 号,这样 1 号和 4 号就认识了。 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 输入描述: 第一行输入三个正整数n,m,q,代表总人数,初始的朋友关系数量,发生的事件数量。 接下来的m行,每行输入两个正整数u,v,代表初始编号u的人和编号v的人是朋友关系。 接下来的q行,每行输入三个正整数op,u,v,含义如题目描述所述。 1\leq n \leq 10^9 1\leq m,q \leq 10^5 1\leq u,v \leq n 1\leq op \leq 2 保证至少存在一次查询操作。 输出描述: 对于每次 2 号操作,输出一行字符串代表查询的答案。如果编号 u 的人和编号 v 的人能通过朋友介绍互相认识,则输出"Yes"。否则输出"No"。 示例1 输入例子: 5 3 5 1 2 2 3 4 5 1 1 5 2 1 3 2 1 4 1 1 2 2 1 3 输出例子: Yes No No 例子说明: 第一次事件,1 号和 5 号本来就不是朋友,所以无事发生。 第二次事件是询问,1 号和 3 号可以通过 2 号的介绍认识。 第三次事件是询问,显然 1 号和 4 号无法互相认识。 第四次事件,1 号和 2 号淡忘了。
03-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值