一尘不染

如何按请求的顺序处理jquery ajax请求

ajax

我正在制作一个Java Servlet页面,该页面检查域名列表,并通过jquery
ajax请求检查每个名称。它的工作正常,除非结果被无序附加到DOM。什么是按请求的顺序处理请求的最佳方法,但是又像长时间轮询一样异步进行。我是javascript新手。

这是我用于请求的代码:

$.ajax({
    async:true,
    type:'GET',
    url:servlet,
    success:function(data){
        $('p').append(data+"<br>");
    }, 
});

我当时正在考虑向Java Servlet发送一个序列号,该序列号将通过JSON返回,但是我想知道是否有更简单的方法。


阅读 412

收藏
2020-07-26

共1个答案

一尘不染

我要做的是提前为响应创建容器,然后在其周围绑定回调(实际上不像bind()函数中那样绑定)。

例如,假设您有一个类似的容器<div id="container"></div>,则可以执行以下操作:

function makeRequest(something) {
    var target = $("<div></div>");
    $("#container").append(target);
    $.get("", {something: something}, function(data) {
        target.html(data);
    });
}

就灵活性而言,这是一个相当糟糕的例子,但它应该说明这一点。它在发出请求之前将div添加到容器中,然后使用该div将响应推送到其中。这意味着将按照发出请求的顺序附加div。您可以将此想法扩展为使用样式,使其看起来好像在div填充之前就不存在,或者您可以在其中包含“正在加载”消息。

(此外,使用该something参数传递数据的效果还不错,但希望您能理解这一点。)

2020-07-26