在成功调用ajax后,我遇到了重定向/重新加载的问题。 情况如下:
我有一个删除项目保存在一个数组中。当我点击一个按钮时,它通过ajax调用PHP文件,成功后我需要重新加载页面。但我这样做有些问题。 我搜索了互联网,找不到可行的解决方案。
我有PHP文件,它通过数据库逐项删除数组。
foreach($arrayVals as $key=>$val)
{
//bla bla
}
另外,我有jQuery部分:
$("#button").live("click",function(){
$.ajax({
url, data, type... not important
success: function(html){
location.reload();
}
});
});
我的意思是,代码有效但不好。它会删除项目,但不会删除所有项目,然后重新加载页面。 比如,如果我要删除10个项目,它会删除6-7个项目,并且3-4个项目会保持删除状态。
就像它过早重新加载页面一样,PHP文件没有足够的时间来处理所有内容:D
答案 0 :(得分:46)
BrixenDK是对的。
所有ajax调用完成后执行 .ajaxStop()
回调。这是放置处理程序的最佳位置。
$(document).ajaxStop(function(){
window.location.reload();
});
答案 1 :(得分:12)
在ajax完成时使用ajaxStop执行代码:
$(document).ajaxStop(function(){
setTimeout("window.location = 'otherpage.html'",100);
});
答案 2 :(得分:4)
使用此Reload page
success: function(data){
if(data.success == true){ // if true (1)
setTimeout(function(){// wait for 5 secs(2)
location.reload(); // then reload the page.(3)
}, 5000);
}
}