关于ajax局部刷新,从数据库实时更新数据到页面(一般是下订单成功后发送消息到后台)

关于ajax局部刷新,从数据库实时更新数据到消息框(通知框),一般是下订单后发送消息到后台,这个后台的消息(或者通知)是实时更新的,就需要用到局部刷新。

思路:

1、要提交到后台审核,就应该有一个状态值,所以数据库中应该有对应的存取状态的字段‘status’,用户提交过来的数据是未审核的,后台会根据这个字段做查询取出数据并展示到消息框中

2.“实时”者就是要刷新,就是要定时,要定时的去查询数据库中未审核状态的数据,如果有就取出来放到消息框中

3,这个消息图标在页面中占很小的一块,所以只是局部刷新就可以了

“刷新”这一关键字,用的最多的技术应该是ajax,但是之前总以为ajax只能用来提交数据或者提交请求,从没想过不发送请求只往回来取数据这一情况,最后也验证了这种情况是行的通,下面是我写的一个demo

关于ajax局部刷新,从数据库实时更新数据到页面(一般是下订单成功后发送消息到后台)

JavaScript部分:

    <script>
        $(document).ready(function(){//定时
            setInterval(function(){
                $.ajax({
                    type:"POST",
                    dataType:"",
                    url:"__CONTROLLER__/ajx",
                    async:false,
                    cache:false,
                    timeout:3,
                    success:function(data){

                        var obj = eval("("+data+")");
                        var str='';
                        for(var i in obj){ //表示遍历数组,
                            $("#res").empty(); //清空前一次刷新数据,不清除索表会出错
                            str+='<p class="dropdown-header">'+obj[i].name+'</p>';//消息框
                        }
                        $("#res").append(str);
                        $("#strcunt").html(obj.length);
                    },
                    
                });
         }, 3);
//
        });
   </script>
PHP部分:

   public function ajx(){
      $model = M('nametest');
      $res = $model -> where('status = 1')->select();
    echo json_encode($res);
   }
代码肯定有需要改进的地方,希望有人能指出来共同学习。