今天做了一个功能,保存成功后,刷新页面,
$('#btn').on('click', function(event) {
var ids = $("#idt").getChecked();
if (ids.length > 0) {
$.ajax({
url : basePath + "/XXX",
data : {
ids : ids.join(","),
},
success : function(data, message) {
})
} else {
alert("请选择一条以上的数据");
return;
}
$btGrid.flexReload({});
}
});
最后调试半天都不行,怀疑是因为后端当时还没保存到数据库,导致查询出来的是老数据,在第一个请求,采用线程暂停一会的方式,比如5秒,发现还是老数据。
最后采用F12调试。发现第一个请求到后端后,还没到5秒,第二个请求紧接着就又往后台发了。
原因大致找到了,是因为,第一个ajax请求的结果还未返回给前端,第二个请求又发起了。
改成,第一个请求返回成功后再进行刷新即可。
$('#btn').on('click', function(event) {
var ids = $("#idt").getChecked();
if (ids.length > 0) {
$.ajax({
url : basePath + "/XXX",
data : {
ids : ids.join(","),
},
success : function(data, message) {
//成功后,才需要刷新页面,这样才可以加载到最新数据。
$btGrid.flexReload({});
})
} else {
alert("请选择一条以上的数据");
return;
}
}
});