4

有人可以引导我以正确的方式进行实时通知吗

例如,知道何时在 Mysql 中添加了新行

知道一个 php 文件是否已更改???

我应该怎么做?

4

2 回答 2

8

您可以使用 定期检查服务器的更新setInterval(),也可以使用 javascript 进行长轮询。这样做的好处setInterval()是它不会在您的服务器上保持连接打开太久,但您可能会在服务器调用之间的“停机时间”期间进行更新。长轮询将为您提供近乎即时的更新,因为它会等待连接打开,直到收到新信息。但显然,不利的一面是您的连接在整个地方都保持打开状态。

例行检查...

setInterval(function(){
  $.get("updates.php", {}, function(results){
    if ($(results).length) {
      $("results").each(function(){
        // do something with update messages
      });
    }
  });
}, 30000); // Every 30 seconds.

使用 PHP/jQuery 进行长轮询示例:

您可以在http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/找到使用 PHP 和 jQuery 进行长轮询的示例

于 2009-12-21T20:30:10.620 回答
2

您可以使用 db 触发器来监视某些表中的更改并将通知数据插入到新表中。然后。使用 Jquery 和 ajax 定期查询该数据库表。

工作流程:

  1. 创建监视表users以进行插入、更新和删除的触发器
  2. 一旦users被更改,触发器会插入一条新记录来notifications详细说明更改的内容
  3. 使用定期更新程序,检查notifications表中的新记录并将它们显示给用户。

这个简单的工作流程可能不像您希望的那样容易实施,但它会以有效的方式完成工作。

于 2009-12-21T20:35:15.570 回答