我正在制作一个Java Servlet页面,该页面检查域名列表,并通过jquery ajax请求检查每个名称。它的工作正常,除非结果被无序附加到DOM。什么是按请求的顺序处理请求的最佳方法,但是又像长时间轮询一样异步进行。我是javascript新手。
这是我用于请求的代码:
$.ajax({ async:true, type:'GET', url:servlet, success:function(data){ $('p').append(data+"<br>"); }, });
我当时正在考虑向Java Servlet发送一个序列号,该序列号将通过JSON返回,但是我想知道是否有更简单的方法。
我要做的是提前为响应创建容器,然后在其周围绑定回调(实际上不像bind()函数中那样绑定)。
例如,假设您有一个类似的容器<div id="container"></div>,则可以执行以下操作:
<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参数传递数据的效果还不错,但希望您能理解这一点。)
something