日期:2014-05-17  浏览次数:20618 次

怎么实现动态侦听数据库变化呢
想做一个购物网站,想要在有人购买商品的时候提示“有人购买了你的商品”这样的消息,但是怎么侦听数据库的变化呢?如果定时查询数据库应该很占资源吧?(1次/1s)。谢谢大家了

------解决方案--------------------
我明白楼主意思,他意思是当前台有人下单的时候后台人员能立马获取到下单信息,而不是刷新才看到。
我目前有以下几个办法,
1,写个邮件发送,当有客户人下单的时候在插入数据的时候把邮件发送到管理员邮件里,最好是QQ邮件,因为QQ能提醒,呵呵。这样当有人下单的时候就立即知道了,当然也可以用短信(但是要钱,而且还有延时)。
2,利用JS setInterval 每隔3秒就查看一下数据库是否有变化,如果有的话你可以做个QQ或旺旺的提示音来提示后台人员有新订单啦,我就是这样做的。
贴下我的代码:
var int=setInterval("clock()",20000);
function clock(){
  $("#call_div").html('<li>正在刷新屏幕。。。</li>');
  var url = "extend/new_dd.php?cache="+Math.random();
  $.get(url,function(result){
$("#call_div").html(result);
  });
}

3,也是利用JS setInterval 但不是查询数据库,而且当有客户人下单,在插入数据的时候改变$_SESSION[odrer_state]里面内容为1,然后就是利用JS setInterval每隔3秒获取内容,如果为1的话就提未后台人员有订单了,如果后台有员看到了要点下处理再把$_SESSION[odrer_state]内容变为0。这样好处是不会因为过多查询而消耗数据库资源。

其实方法很多,要看你怎么用最合适。附上我网站这个功能的载图