每次在数据库中有插入时实时

时间:2016-11-05 01:16:04

标签: php jquery ajax codeigniter real-time

我正在使用ajax,在从数据库获取数据时,我已经设法使用ajax显示我的数据,而且我想制作它,如果数据库中有其他数据,它将自动添加到我的视图中。我怎么能这样做,我把我的代码放在document.ready中,因为每次用户点击我的页面时,它都会自动显示所有数据,但我的问题是:当用户查看页面时,还有其他数据数据库,如何在实时查看页面时立即将其添加到用户视图中。我正在使用codeigniter。

这是我的代码:

$(document).ready(function() {
  show_patients();
});
function show_patients() {
  $("#queue").empty();
  $.ajax({
        url: siteurl+"myclinic/get_patients",
        type: "GET",
        dataType: "JSON",
        success: function(data) {
          if(data.length>0) {
            for(i=0;i<data.length;i++) {
              $('#queue').append('<div class="col-sm-10">'+'<div class="panel-group">'+'<div class="panel panel-info">'+
                                  '<div class="panel-heading">'+'<h4><a data-toggle="collapse" href="#patientinfo'+data[i]['patient_id']+'">'+data[i]['order_num']+' '+data[i]['patient_lname']+', '+data[i]['patient_fname']+' <span class="fa fa-arrow-circle-o-down pull-right"></span></a></h4>'+
                                  '</div><!-- panel-heading -->'+'<div id="patientinfo'+data[i]['patient_id']+'" class="panel-collapse collapse">'+'<div class="panel-body">'+'<div class="row">'+
                                  '<div class="col-sm-4">'+'<button class="btn btn-success btn-sm">Check me up</button>'+'</div><!-- col-sm-4 -->'+'<div class="col-sm-6">'+
                                  '<div class="img-patient">'+'<div class="patient-pic" style="background-image: url('+data[i]['patient_photo']+')"></div>'+'</div><!-- img-patient -->'+'</div><!-- col-sm-6 -->'+'</div><!-- row -->'+
                                  '</div><!-- panel-body -->'+'</div><!-- panel-collapse -->'+'</div><!-- panel -->'+'</div><!-- panel-group -->'+'</div><!-- col-sm-10 -->');
            };
          }
          else {
            $('#queue').append('<h4> No Patients in queue </h4>');
          }
        }
  });
}

2 个答案:

答案 0 :(得分:0)

我不会在生产服务器上运行一些ajax循环,以及如果数据必须完全准确,你应该查看套接字,nodeJS和Socket.IO对此非常有用。

它将是完全实时的,并且很容易保护。

答案 1 :(得分:0)

如果您看到实时应用程序使用socke.io来获取非常简单的nodejs,那么您应该在客户端使用套接字侦听器,并在服务器端使用套接字emmiter,以便在数据库发生更改时发出事件