JQuery Обновить/Обновить страницу, если Ajax Успешная после времени
Я использую Jquery для вызова Ajax. Сервер возвращает объект Json со значением "истина или ложь", например:
return Json(new { success = false, JsonRequestBehavior.AllowGet });
Есть ли способ обновить страницу через 5 секунд, если сервер вернет true?
Ответы
Ответ 1
В своем обратном вызове ajax выполните следующее:
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);
}
}
Как вы хотите перезагрузить страницу через 5 секунд, вам нужно иметь тайм-аут, как было предложено в ответе.
Ответ 2
location.reload();
Вы можете использовать функцию reload
в вашем условии if
для успеха, и страница перезагрузится после того, как условие выполнено.
Ответ 3
if(success == true)
{
//For wait 5 seconds
setTimeout(function()
{
location.reload(); //Refresh page
}, 5000);
}
Ответ 4
var val = $.parseJSON(data);
if(val.success == true)
{
setTimeout(function(){ location.reload(); }, 5000);
}
Ответ 5
$.ajax("youurl", function(data){
if (data.success == true)
setTimeout(function(){window.location = window.location}, 5000);
})
)
Ответ 6
Здесь есть много хороших ответов, просто из любопытства, после того, как вы изучите это сегодня, не лучше ли использовать setInterval
, а не setTimeout
?
setInterval(function() {
location.reload();
}, 30000);
дай мне знать твои мысли.
Ответ 7
Я предпочитаю этот путь
Используя ajaxStop
+ setInterval
, это обновит страницу после любого запроса XHR [ajax] на той же странице
$(document).ajaxStop(function() {
setInterval(function() {
location.reload();
}, 3000);
});