ajax轮询查询状态并输出提示音 TP5+jquery+ajax声音提示功能
在做一些会员系统的时候,经常需要对会员收到短信息进行声音提醒,这就需要AJAX在后台循环调用会员收到信息状态, 一单收到信息就播放特定音乐进行提醒
这里用了TP5作为后端演示
前端代码:
<!DOCTYPE html> <html> <head> <script src="/js/jquery-1.8.3.min.js"></script> <script type="text/javascript"> function longPolling() { $.ajax({ type:"GET", url:"/admin/index/music", timeout:30000, //超时时间30秒,30秒内没有完成请求,则取消请求然后error回调函数会被调用 success:function(data){ //返回的回调函数 if(data==1)//状态码为200,完全成功才响起提示音 { playsound(); } //也有状态码为204,也是success回调函数,但是textStatus==nocontent setTimeout(longPolling, 10000); //再发起一个连接请求 }, error:function(XMLHttpRequest, textStatus, errorThrow){ if(textStatus=="timeout") //请求超时 { setTimeout(longPolling, 10000); } else // 其他错误,如网络错误等 { setTimeout(longPolling, 10000); } } }); } longPolling(); //响起提示音 function playsound() { var myAuto = document.getElementById('myaudio'); myAuto.src="/static/9725.wav"; } </script> </head> <body> <audio id="myaudio" src="" controls="controls" autoplay="autoplay" hidden="true" style="display:none" ></audio> </body>
后端代码,主要是判断有无信息,有信息就输出1
public function music() { $message = Db::name('message')->where(array('bptype'=>0,'isverified'=>0))->sum('bpprice'); if($message>0){ echo "1"; } else{ echo "0"; } }
到这里就完成了轮询查询,和声音播放的功能了
顶(0)
踩(0)
- 最新评论