我在我们的Java项目中使用jQuery,并使用3个AJAX请求来刷新3列。问题是如果您在收到响应之前单击某些内容,有时其中一个JSP意味着在特定DIV中返回响应,则会覆盖整个页面并将其作为新页面返回。我使用AJAX Queue插件,它应该取消队列中的请求,但我认为它不起作用..
我在队列中做了3次这个AJAX请求:
$('#col<%=col%>')
.html("<div style='float: left; width: 100%'><img src='css/ajax-loader2.gif' /></div>");
var url='CoreFetchCategoryHandler.jsp';
ajaxManager.add({
success: function(html) {
$('#col<%=col%>').html(html);
},
type: "POST",
url: url,
data: "<%=baseString%><%=keywordsString%>category=<%=columnnCategory%>&showItems=30",
cache: true,
error: function(a, b) {},
abort: function() {
$.manageAjax.clear("cacheQueue", true)
}
});
有人可以帮我这个吗? 谢谢!
答案 0 :(得分:0)
我建议您使用Queue插件更多地控制您的请求,而不是(或同样?)。
查看ajaxStart(),ajaxStop()和ajaxComplete()函数。一旦启动Ajax请求(使用ajaxStart()
),可能会在必要时设置一个标志,您可以在加载或刷新其他列的数据之前进行检查。每当AJAX请求开始并且没有活动时,就会触发此事件。使用此方法,您可以启用或禁用单击事件或附加到它们的DOM元素,以便用户必须等到Ajax请求完成后才能启动下一个请求。
同样,只要所有AJAX请求结束,ajaxStop()
函数就会触发。这样,您可以更精细地控制数据的加载顺序。