【问题标题】:making realtime everytime there is an insert in database每次在数据库中有插入时进行实时
【发布时间】:2017-03-18 22:44:18
【问题描述】:

我正在使用 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>');
          }
        }
  });
}

【问题讨论】:

  • 实时...也许阅读有关 HTTP 协议的文档。请求 -> 发送 -> 完成。也许看看 websockets 来保持一个活跃的连接。
  • 如果我理解正确,您希望首先在视图中显示最新数据,为此只需在查询中添加“ORDER BY 日期字段或 ID 字段”。一次获取所有数据并不好,您应该添加限制并创建分页。@JcJohn
  • @parthmahida 谢谢你的评论先生。我想要一些东西,听众?或者,如果在 db 中添加了数据,则视图 div 会使用 ajax 自动刷新..
  • @Xorifelse 你好,先生。感谢您的评论。我不知道如何使用套接字编程先生。 :'(
  • @parthmahida 指的是创建一个 js 计时器来拉取更新,这意味着不是实时的,但可能非常有效,具体取决于服务器负载。对于 websockets,有library's 让它更容易。

标签: php jquery ajax codeigniter real-time


【解决方案1】:

我不会在生产服务器上运行一些 ajax 循环,而且如果需要完全准确的数据,您应该查看套接字,nodeJS 和 Socket.IO 非常适合。

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

【讨论】:

  • 你能给我一些关于如何从套接字编程转换代码的教程吗?.. 无限监听器?
  • 我建议使用他们的实时聊天应用程序查看 nodejs 的文档。这应该会给你足够的资源来适应你自己的需要。 socket.io/get-started/chat
【解决方案2】:

如果你看到实时应用程序使用 socke.io 来使用 nodejs,那使用起来非常简单,你应该在你的客户端有一个套接字监听器,在你的服务器端有一个套接字发射器,当数据库发生变化时发出一个事件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 2021-08-18
    • 1970-01-01
    相关资源
    最近更新 更多