1

我正在编写一个动态网站,该网站使用 AJAX 检查公司前端和后端员工之间的库存项目状态。一名员工提交请求,后面的人看到它在队列中弹出,然后在请求的物品是否有库存时做出响应。然后,前端员工会适当地看到他们的请求状态更改。

当代码使用 AJAX 从数据库中的表中检索所有活动请求然后使用 jQuery 的 .empty() 函数清除容器时,就会出现我遇到的问题,也许还有更好的处理方法div 包含所有旧请求(每 2 秒 setInterval())并使用 PHP 脚本重新生成队列,该脚本基于 AJAX 结果动态构建。

setInterval() 函数调用 .empty() 容器 div 导致队列明显消失并重新出现的函数。有没有更好的方法来使用 jQuery 更新队列,而不是清空整个队列然后根据更新的状态重建它?我不能简单地查询最新的请求,因为旧请求的状态可能已经改变并且也需要更新。

希望这很清楚,如果没有,请询​​问需要更多信息,任何帮助将不胜感激,谢谢!

4

1 回答 1

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,它只是用新内容替换旧内容。

于 2013-05-23T21:57:56.993 回答