完成请求后刷新页面
Page refresh after the request is Done
我有一个页面,上面有很多复选框,我写了一个JS代码,为每个页面调用PHP页面,我想在调用完成后刷新页面。。这是我的代码
$(".matchFrnds").each(function(){ //For each CheckBox
if($(this).is(':checked')){
var sendData= $(this).val();
$.post('Call to PHP Page',{sendData:sendData},function(data){
window.location.reload();
});
}
});
问题是,页面在完成几个复选框后会重新加载,所以如果有60个复选框,则页面会在调用10个复选框后重新加载。我还更改了window.location.reload();
的位置,但结果是一样的,我希望一旦对所有复选框的调用完成,它就会重新加载。
您可以检查完成了多少次呼叫,然后重新加载
var boxes = $(".matchFrnds:checked").length;
var calls = 0;
$(".matchFrnds").each(function(){ //For each CheckBox
if($(this).is(':checked')){
var sendData= $(this).val();
$.post('Call to PHP Page',{sendData:sendData},function(data){
calls++;
if(calls >= boxes) {
window.location.reload();
}
});
}
});
这真的很容易
您只需要设置一个计数器,然后在最后一个计数器上调用reload()
这个想法是有另一个变量。。。
// Save the element to iterate in a variable
var matchFrnds = $(".matchFrnds"),
//and save its length too
length = matchFrnds.length;
//Iterate over it
matchFrnds.each(function() {
// modify the counter
--length;
if ($(this).is(":checked")) {
// do your things
$.post( ... , function(data) {
//do what you need to do with the data...
// ....
// ....
});
}
//and, if it's the last element
if (!length) {
// LAST ITERATION!
window.location.reload();
}
});
就是这样。
您可以使用.ajaxStop事件
http://api.jquery.com/ajaxStop/
您可以在完成请求后尝试使用此功能:
location.reload();
相关文章:
- 如果不刷新Rails中的浏览器,AJAX请求就无法看到效果
- Spring MVC Ajax请求刷新动态表
- css媒体查询请求后刷新jQuery插件
- 在 ASP 中请求后刷新模型.MVC
- 如何在ajax请求周期性自动刷新时使用knockout.js数据绑定
- JQuery Ajax赢得't发送get请求,而是刷新页面
- 完成请求后刷新页面
- 如何在不刷新页面的情况下将数据从 ajax 远程请求附加到
- 在触发请求之前刷新侦听器中的令牌
- yii2:使用 Pjax 更新/刷新/重新加载页面,与请求页面不同
- 为什么当我通过 Ajax 请求刷新部分时我的实例变量为空
- 如何强制 jQuery 向服务器发出 GET 请求以刷新缓存的资源
- jQuery Mobile中AJAX请求后刷新页面
- 如何在输入地址的同时发送新的地理定位请求并刷新谷歌地图
- angular http获取请求通过服务需要刷新以显示数据
- AJAX请求带有Jquery,不刷新页面,同时使用选项对象和回调
- Jquery ajax请求后,HTML表不会刷新
- 向浏览器中打开的另一个页面发送刷新请求
- $httpBackend jsonp:没有待处理的刷新请求
- Angular httpBackend:没有挂起的刷新请求