yui 发表于 2017-12-30 19:41:29

PHP使用AJax轮询实现新订单实时提醒

  业务逻辑:Ajax每隔10秒钟请求一次接口,该接口会去查询数据库是否有新的订单,如果有则返回新订单的数量,后台收到声音提示,更改后台提醒数量
  提醒框可链接到订单列表,后台更改完订单状态后会提醒会消失
  此逻辑同样可用于实现后台通知功能,用定时任务也可以实现

  1、JS代码
  

<audio src="/admin/mp3/remind.mp3"> </audio>  <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
  <script>
  var remind = 1;
var mp3 = $("#mp3");var play= 0;if(sessionStorage.num){  $(
".remind").text(sessionStorage.num);  }
  

  $
.ajax({  url
:"/sendOrderNotice",  success
:function (data) {  sessionStorage
.num = data;  $(
".remind").text(data);  remind
= data;play=data;  remind
<=0?$(".remind").hide():$(".remind").show();  

  }
  })
  

  

  setInterval(
function () {  $
.ajax({  url
:"/sendOrderNotice",  success
:function (data) {  remind
= data;  sessionStorage
.num = data;if(play==remind){  remind
<=0?$(".remind").hide():$(".remind").show()  }
else{  $(
".remind").show().text(remind);  mp3
.play();  play
=remind;  }
  }
  })
  }
,10000)  

</script>  

  2、php接口
  

/**  * 订单提醒
*/  public function sendOrderNotice(){
//查询order表是否有新订单  $NewOderCount=Order::getNewOderCount();
  if ($NewOderCount) {
  echo json_encode($NewOderCount);
  } else {
  echo 0;
  }
  }
  
页: [1]
查看完整版本: PHP使用AJax轮询实现新订单实时提醒