阿贾克斯有时运行时有时不运行
我有一个关于我的ajax的问题,我从我的数据库中添加数据,并且我正在尝试刷新我的div。有时它的工作很棒,但有时却不行。为什么?。阿贾克斯有时运行时有时不运行
这里是我的代码,其中我有一个函数addtoqueue和其成功的内部,我已经把div复习,以便在我的数据库中添加后,我会刷新我的div。有时它运作良好,但有时并非如此,我曾多次试过它,但总是失败。为什么?
function addtoqueue(patient_id) {
if(getClinicID != undefined) {
if (confirm("Are you sure you want to add this in queue?")) {
$.ajax({
url: siteurl+"myclinic/patientaddqueue",
type: "POST",
data: {patient_id:patient_id,clinic_id:getClinicID},
dataType: "JSON",
success: function(data) {
refresh_afterdel(getClinicID);
alert("Patient Successfully Added");
}
});
}
}
else{
alert("There is no clinic selected");
}
}
这是我refresh_afterdel功能与全码:
function refresh_afterdel(getClinicID) {
$("#queue").empty();
$.ajax({
url: siteurl+"myclinic/get_patients_refresh/"+getClinicID,
type: "GET",
dataType: "JSON",
success: function(data) {
if(data.length>0) {
$("#queue").empty();
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']+','+data[i]['queue_id']+');this.disabled=true;" id="btn'+data[i]['patient_id']+'" class="btn btn-success btn-sm ">Check me up</button>'+'<button onclick="checkstatus1('+data[i]['patient_id']+');" id="btn'+data[i]['patient_id']+'" class="btn btn-success btn-xs ">View History</button>'+
'<button onclick="removequeuedoc('+data[i]['queue_id']+');" id="btn'+data[i]['patient_id']+'" class="btn btn-danger btn-xs btnmarg"> Remove </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 -->');
};
}
}
});
}
现在,这里是我的控制台的屏幕截图,显示的是,我以后单击该按钮addtoqueue的refresh_afterdel不运行。我的屏幕截图中的红色标签后面必须跟着get_patients_refresh,因为它是refresh_afterdel函数的ajax,看看蓝色标签,它显示了我的函数的正确运行。
为了帮助找到问题,我建议您除了“成功”之外还为其他事件添加处理程序(例如“错误”)。然后,您可以查看您的查询是否因某些可识别的原因而失败。
此外,如果您只是通过检查后续“refresh_afterdel”函数是否启动新的ajax请求来观察代码执行,则可以考虑在执行的较早部分中添加控制台日志条目(或必要时发出警报),以查看在哪里它失败。
我已经添加警报,警报也不会执行,但是当我检查查询时,它是好的,数据被添加 –
这不就是异步操作需要不确定的时间吗? – evolutionxbox
@evolutionxbox谢谢你的回复,先生,我有一个在其他函数中的异步函数,在截图checkingUpdates,但它影响过程? 。它不是我的addtoqueue代码的一部分? –
ln 2:getClinicID可以具有值或为null,它不可能等于undefined。您正在寻找'typeof getClinicID!='undefined''来查看变量是否已被初始化。 – Chase