ajax调用的多请求问题
Multiple requests issue with ajax calls
我有一个与ajax调用相结合的多选项卡功能。
show.html.erb
<a href="#tabs-2A<%= id %>"> # dynamically generated tabs within loop
$.ajax({
type: "GET",
url: "/controller1/method1",
dataType: "html",
data: { },
success: function (html) {
$(element).find("#id").append(html);
}
});
OnClick在任何这些选项卡触发ajax调用。注:我上面用的是append
partial被附加,类似于实际的
<td><input type="checkbox" data-some_id="<%= @object.id %>", id="dots"/></td>
JS .
$('body').on("click", "#dots", function(){
$.ajax({
var some_id = $(".dot-checked").data('some_id');
type: "GET",
url: "/controller1/method2",
dataType: "json",
.....
});
});
所以你可以看到在这个部分中有ajax调用。
一切正常
,
我遇到了多个请求问题(onclick为复选框),当你点击同一标签多次或即使我们点击其他标签。
这是因为每次部分页面请求都会添加脚本。
重复请求数(/controller1/method2)等于tab被点击的次数
我该怎么克服?
如果不清楚,请随意评论
解决这个问题的一种方法是在AJAX调用进行时防止复选框被单击两次。由于您正在使用复选框,因此通常最好使用change
事件处理程序,而不是click
。此方法将禁用复选框,直到AJAX调用完成。
$("#dots").on("change", function(){
$(this).prop('disabled', true); // disable on click/change
$.ajax({
type: "GET",
url: "controller/method",
dataType: "json",
complete: function() {
$('#dots').prop('disabled', false); // re-enable after AJAX is complete
}
});
});
相关文章:
- 神秘的ajax json请求问题jQuery
- 为什么我在对话框中遇到Ajax请求问题
- Ajax Asysnchronous 请求问题
- angular单元测试http请求问题
- 在使用 JQuery(和 Sinatra)进行 POST 时如何避免跨源请求问题
- Rails 3 Ajax“双重发布请求”问题
- 如何解决我的http请求问题
- 如何解决我的http请求问题
- AngularJS:$http请求问题-没有为jQuery函数调用更新DOM
- ExpressJS POST方法请求问题
- Angular.js ie ajax请求问题
- Node.js get请求问题(异步问题?)
- Angular JS中带Patch方法的HTTP请求问题
- ajax调用的多请求问题
- Facebook集成使用标准GET请求问题
- HTTP POST请求问题
- AJAX post到php请求问题
- XMLHTTP请求问题
- ExpressJS中的POST请求问题
- Firefox和IE的AJAX请求问题