快捷搜索:   nginx

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)

您可能还会对下面的文章感兴趣:

最新评论