1. 程式人生 > >ajax非同步在頁面造成的問題

ajax非同步在頁面造成的問題

ajax的非同步可能會導致之前獲取的資料,後面獲取不到,原因是ajax還在載入。此時分兩個函式分別設定延時呼叫,或者用同步

function detail(id) {
//獲取數
alert(id);
var datag;
var ui='<%=detailuii%>';
var urll =ui+id;
$.ajax({
type:'get',
url:urll,
async:false,
data:'',
success:function(data){
alert(data);
datag=data;

}
});
$("#detail-form").append('');
var table = '<table width="100%" border="0" cellspacing="0" cellpadding="0">';


for(var i=0;i<datag.data.length;i++){
if(datag.data[i].id==id){
table += '<tr style="height:25px; line-height:25px;padding-left:10px;">'
+'<th align="left" width="25%" >ip地址:</th>';
if(datag.data[i].ipaddr==""||datag.data[i].ipaddr==null){
table += '<td align="left" width="25%" ></td>';
}else{
table += '<td align="left" width="25%" >'+datag.data[i].ipaddr+'</td>';
}
table += '<th align="left" width="25%" >使用者名稱:</th>';
if(datag.data[i].name==""||datag.data[i].name==null){
table += '<td align="left" width="25%" ></td>';
}else{
table += '<td align="left" width="25%" >'+datag.data[i].name+'</td>';
}
table += '</tr>'
+'<tr style="height:25px; line-height:25px;padding-left:10px;">'
+'<th align="left" width="25%" >描述:</th>';
if(datag.data[i].ms==""||datag.data[i].ms==null){
table += '<td align="left" width="25%" ></td>';
}else{
table += '<td align="left" width="25%" >'+datag.data[i].ms+'</td>';
}


table +='</tr>';
}}
table += '</table>';
$("#detail-form").append(table);
document.getElementById("detail-form").style.display= "block";
$("#detail-form").dialog({
autoOpen : false,
height : 'auto',
width : 590,
modal : true,
onClose:function(){
$("#detail-form").empty();
$("#detail-form").attr("style", "display: none;overflow-y:auto;height:100%;");
}
});
$("#detail-form").dialog("open");



}