我想向仅在saome字段更新时使用网站的客户发送警报。 我知道如何使用静默ajax调用定期检查数据库更新。 我只想在有更新信息时触发ajax调用。 换句话说,mysql服务器将向客户端发送一个警告,表明某些表行已更改,以便客户端将触发ajax调用并且可以检索信息。
答案 0 :(得分:1)
您可以使用带有PHP的websockets。看看Thruway。 Thruway使用WAMP,它支持发布和订阅消息模型。您可以使用浏览器端的AutobahnJS JavaScript库来订阅PHP进行数据库更新时发布的事件。
免责声明:我是Thruway的项目维护者。
答案 1 :(得分:0)
这样做的最好方法是使用诸如nodejs之类的实时技术,但是在php中有一种方法(使用javascript / jquery)。我曾经用php和javascript开发聊天。我所做的只是在javascript中设置五秒间隔来收听服务器的任何新消息并将其附加到聊天框。
答案 2 :(得分:0)
如果您的网络服务器是节点使用websockets,否则唯一的另一种方法是长时间轮询(使用setInterval)每30秒左右查询一次数据库
答案 3 :(得分:0)
您可以使用此代码:
function checkUpdate()
{
jQuery.ajax({
type: "POST",
url: "your.php",
data: "name=currentUser&", //our any other data you want to check
success: function(msg){
if(msg.indexOf('no Updates') !== -1 )
{
alert( "You have an update" );
}
});
}
您可以使用上面的代码调用并从your.php获取响应,并在响应不包含“no Updates”时发出警报。我建议你每2分钟用这段代码定期做这件事:
window.setInterval("checkUpdate()", 2*60*1000); // our any other period you want