有人可以引导我以正确的方式发布实时通知吗
例如知道在Mysql中添加新行的时间
知道php文件是否已更改???
我该怎么办呢?
答案 0 :(得分: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.
您可以在http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/
找到使用PHP和jQuery进行长轮询的示例答案 1 :(得分:2)
您可以使用db触发器监视某些表中的更改,并将通知数据插入到新表中。然后。使用Jquery和ajax定期查询该数据库表。
工作流:
users
以进行插入,更新和删除的触发器users
后,触发器会将新记录插入notifications
详细说明更改内容notifications
表中的新记录并将其显示给用户。这个简单的工作流程可能不像您希望的那样容易实现,但它可以有效地完成工作。