验证用户未在特定时间段内输入框

时间:2009-12-27 10:28:56

标签: php ajax

我正在使用PHP和AJAX创建一个聊天应用程序,如果用户已经在页面上停留了至少1-2分钟并且在最近的1-中没有在聊天框中输入任何内容,我想显示一条消息2分钟。

我想在雅虎的聊天框中显示一条消息:[last message received 2-3 minutes ago]

2 个答案:

答案 0 :(得分:3)

使用setInterval定期运行一个检查输入值的函数,并将其与您之前检查的时间(您需要存储)进行比较。

如果没有更改,您可以使用XHR告诉服务器。

答案 1 :(得分:3)

您可能会使用setTimeout

收到新邮件时设置超时。您创建一个将在时间到期后调用的回调函数 - 该函数将写入消息。收到消息后,将按照该链接中的描述清除超时。

为了对此进行扩展,您可能希望在用户更改文本框时在脚本中设置某种变量,并让回调函数检查变量(在收到新消息时将清除该变量) - 方式,如果用户收到消息,并改变主意并删除它,则不会显示该消息。但我不确定这是否是你想要的行为。

如果您希望邮件经常更改,请使用setInterval,它将首先绘制邮件,然后更新自收到邮件以来已经过去的时间。你甚至可以将它们组合起来 - 将超时设置为3分钟,然后从setTimeout的回调设置,每1分钟开始一个间隔。您可能希望清除时间间隔并在收到新消息时删除消息,因此您不会在对话中出现这些陈旧无意义的“5分钟前收到的消息”消息。