我正在编写一个动态网站,该网站使用AJAX检查公司前端和后端员工之间库存项目的状态。一名员工提交请求,后面的人看到它弹出队列,然后回应所请求的项目是否有库存。然后,前端员工会正确地看到他们的请求状态发生变化。
我遇到的问题,也许有更好的处理方式,当代码使用AJAX从数据库中的表中检索所有活动请求然后使用jQuery的.empty()函数来清除时out容器div,它包含所有旧请求(每2秒一次setInterval())并使用PHP脚本重新生成队列,该脚本根据AJAX结果动态构建。
setInterval()函数调用.empty()函数使容器div导致队列明显消失并重新出现。是否有更好的方法使用jQuery更新队列,而不是清空整个队列,然后根据更新的状态重建它?我不能简单地查询最新请求,因为旧请求的状态可能已更改,也需要更新。
希望这很清楚,如果没有,那么请询问需要哪些更多信息,非常感谢任何帮助,谢谢!
答案 0 :(得分:2)
像这样......
$(document).ready(function(){Update();});
function Update() {
$.ajax({
url: 'http://example.com/url/to/poll',
success: function(data) {
$('#MyDiv').html(data);
setTimeout('Update()', 2000);
},
fail: function() {
//Something went wrong. Inform user/try again as appropriate
alert('Failed');
setTimeout('Update()', 2000);
}
})
}
它只在当前完成后的2s延迟开始。此外,它从来没有真正清空Div,它只是用新的替换旧内容。