Ответ 1
BrixenDK прав.
.ajaxStop()
обратный вызов выполняется при завершении всего вызова ajax. Это лучшее место для размещения вашего обработчика.
$(document).ajaxStop(function(){
window.location.reload();
});
У меня есть некоторые проблемы с перенаправлением/перезагрузкой после успешного вызова 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
BrixenDK прав.
.ajaxStop()
обратный вызов выполняется при завершении всего вызова ajax. Это лучшее место для размещения вашего обработчика.
$(document).ajaxStop(function(){
window.location.reload();
});
Вы используете ajaxStop для выполнения кода при завершении ajax:
$(document).ajaxStop(function(){
setTimeout("window.location = 'otherpage.html'",100);
});
используйте страницу перезагрузки
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);
}
}