每当有新数据可供显示时,如何在已打开的网页上显示对话框?

时间:2017-03-18 18:42:55

标签: php mysql bash shell crontab

我需要在后台定期发生两件事:

  1. 如果服务器上的目录中有新文件,我需要每5分钟检查一次,如果有,我需要将该文件中的数据加载到数据库中,然后从目录中删除该文件

  2. 每次我将新数据加载到数据库中时,我都需要检查显示数据库中数据的网页是否在用户中打开了。浏览器。如果它是打开的,我想显示一个对话框,告诉用户重新加载网页,因为在数据库中添加了新数据。

  3. 对于1,我认为我应该创建一个cron作业来每5分钟执行一次PHP脚本。在这个PHP脚本中,我将检查目录中是否有文件,如果有,我会将该文件中的数据加载到数据库中,然后删除该文件。

    但我很困惑2.我应该怎么做呢?如何通知已经打开网页的用户,新数据可用,他们应该重新加载网页,以便从数据库中提取新数据并显示。

1 个答案:

答案 0 :(得分:1)

你对第一点的解决方案对我来说似乎合情合理。你的第二点可以通过定期的ajax请求来处理。您可以使用Javascript调用服务器上的页面,以查看是否已将任何新数据添加到数据库中。

我认为这样做的一个好方法是在用户的会话中添加一个变量,这个变量会保留上次检查完成的时间戳。当您使用AJAX调用脚本时,它将检查数据库是否从那时起创建了任何新记录,并使用当前时间戳更新变量。

然后脚本返回是否有新记录,使用Javascript可以向页面添加消息。您甚至可以根据需要返回数据,因此用户无需重新加载页面。