私はajaxを使ったコードを持っています。私はこのことをリアルタイムで作りたい。私のajaxはmysqlデータベースからすべてのデータを取得することによって動作し、データを取得するたびに、すべてのデータを1つずつ取得するループを使用しました。データベースにphp/codeigniterで追加されるたびにリアルタイムリスナーを作成します
私が望むもの: 私はそれをループでもう一度取得しないようにするにはどうすればいいですか?私のデータベースに追加がある場合、再度ループするのではなくデータベース内で追加を取得するだけです。すべてのデータを何度も何度も取得する。 ?
はここでアヤックスに私のコードです:
function show_patients(getClinicID) {
$("#queue").empty();
$.ajax({
url: siteurl+"myclinic/get_patients/"+getClinicID,
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-5">'+'<small>Patient ID: <label id="patientID">'+data[i]['patient_id']+'</label></small>'+''+'<button onclick="checkstatus('+data[i]['patient_id']+');this.disabled=true;" id="btn'+data[i]['patient_id']+'" 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>');
}
}
});
}
私のコードは、それが複製防止$("#queue").empty();
を使用してdiv要素をクリアし、何度も何度もデータを取得することによって動作します。私は何かしたい、すでにデータがある場合、追加されたデータは、ループを再開せずにdivを何度もクリアすることによって得られ、すべてのデータが追加されます。
show_patientsを呼び出すタイミングはいつですか?この関数をある時間間隔で呼び出していますか? –
私は毎秒それを呼んだ。かしこまりました。 –