php网站添加在线聊天室,PHP打造多人在线聊天室[二]

第一篇帖子PHP打造多人在线聊天室[一]已经简单介绍了程序的基本功能。

但是还存在一个比较严重的Bug,在网络时延较大的情况下,会出现信息的重复显示。

问题为何出现?

在用户点击提交按钮的时候,会发送ajax请求,把用户输入的信息提交给服务器。

因为有另一个请求新信息的定时器开着,在网络时延较大的情况下,会出现当一条数据请求但还未输出在页面的时候,同样的数据会再次被请求,所以会出现信息的重复显示。

对这一问题进行了更正。

Index.js中

解决方案

定义两个请求标量:

向服务器请求新数据的定时器,必须在 isNotSend 和 isNotGet都为真的情况下才会发送请求。

定时器在发送一次请求后会先把 isNotGet 置为假,这样直到新数据请求成功后才会再次发送请求。

refTime为定义的定时器的间隔时间,默认为500毫秒,如果您所处网络时延较大,请在index.js顶部加大此值。

当用户点击发送按钮的时候,变量 isNotSend 会被修改为假值,这样一直到数据添加成功后才可以向服务器请求新的数据。

由于网络时常出现不稳定现象或者程序未知的Bug,可能会出现信息发送失败,或者新信息无法接收等情况,请刷新一下页面即可。

并且程序加入的“黑名单 ”功能,进入黑名单的IP地址,将不能发言。

如要使用程序,请仔细阅读源码包中的readme.txt文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值