在 ajax 成功后重新加载页面

2022-08-30 17:22:07

我在成功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


答案 1

BrixenDK是对的。

.ajaxStop()当所有 ajax 调用完成时执行回调。这是放置处理程序的最佳位置。

$(document).ajaxStop(function(){
    window.location.reload();
});

答案 2

您可以使用 ajaxStop 在 ajax 完成时执行代码:

$(document).ajaxStop(function(){
  setTimeout("window.location = 'otherpage.html'",100);
});

推荐