Php 服务器端脚本中的事件触发

Php 服务器端脚本中的事件触发,php,database,ajax,comet,Php,Database,Ajax,Comet,所以,当你的问题得到答案时。或者你有了新徽章,事件被触发。或者当你们在论坛上看到新的PM时,它也会通过提醒信息让你们知道 此事件发生后,当您第一次进入站点时,您会看到一条消息,表明您的帐户发生了问题 这是如何实现的?脚本如何知道它们有新的东西要展示给您 当另一个人对你的答案或问题投票时,就会发生这种情况。这是在服务器端记录的 当您登录到该站点时,可以通过查找数据库中的这些记录来确定您不在时发生了某些事件 当您在站点上时,页面可以定期轮询服务器以获取更改。因此,触发事件的服务器并不是真正的服务器。

所以,当你的问题得到答案时。或者你有了新徽章,事件被触发。或者当你们在论坛上看到新的PM时,它也会通过提醒信息让你们知道

此事件发生后,当您第一次进入站点时,您会看到一条消息,表明您的帐户发生了问题


这是如何实现的?脚本如何知道它们有新的东西要展示给您

当另一个人对你的答案或问题投票时,就会发生这种情况。这是在服务器端记录的

当您登录到该站点时,可以通过查找数据库中的这些记录来确定您不在时发生了某些事件


当您在站点上时,页面可以定期轮询服务器以获取更改。因此,触发事件的服务器并不是真正的服务器。

您正在寻找的编程技术被称为。wikipedia的链接描述了这方面的一些实现,但最简单的方法是创建一个长超时的XMLHttpRequest,并且只在更改时返回数据。

作为对您上一条评论的回答

有几种技术将事件标记为“新”。它可以是数据库表中的另一个布尔型字段:告诉用户事件是否显示给用户。或者-最简单的一个-只是在会话中记录最后一个用户访问的时间,然后将所有即将到来的事件的时间与之进行比较

这是如何在服务器端记录的?例如,我的问题有两个新答案。该事件是如何记录的?问答、评论和投票都存储在某种数据库中。当您与站点交互时,您的操作会将数据发送回服务器,然后将数据存储在数据库中。当您浏览站点时,页面可以通过向服务器发送请求,在后台使用AJAX进行定期检查。服务器端程序将查找数据库查找更改并将结果发送回浏览器,然后浏览器将显示通知等+1,因为这确实是最好的解决方案,尽管使用StackOverflow时,它们实际上只是轮询。