Подтвердить что ты не робот

Перезагрузить страницу после успеха ajax

У меня есть некоторые проблемы с перенаправлением/перезагрузкой после успешного вызова ajax. Вот ситуация:

У меня есть элемент для удаления, сохраненный в массиве. Когда я нажимаю кнопку, он вызывает файл PHP через ajax, и после успеха мне нужно перезагрузить страницу. Но у меня есть некоторые проблемы с этим. Я искал в Интернете и не нашел рабочего решения.

У меня есть файл 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

4b9b3361

Ответ 1

BrixenDK прав.

.ajaxStop() обратный вызов выполняется при завершении всего вызова ajax. Это лучшее место для размещения вашего обработчика.

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

Ответ 2

Вы используете ajaxStop для выполнения кода при завершении ajax:

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

Ответ 3

используйте страницу перезагрузки

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); 
   }
}