jQuery Обновить / Обновить страницу, если Ajax Успешная после времени
Я использую Jquery для вызова Ajax. Сервер возвращает объект Json со значением "истина или ложь" следующим образом:
return Json(new { success = false, JsonRequestBehavior.AllowGet });
Есть ли способ обновить страницу через 5 секунд, если сервер вернет true?
8 ответов
В вашем успешном обратном вызове 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 секунд, вам потребуется тайм-аут, как указано в ответе.
location.reload();
Вы можете использовать функцию перезагрузки в вашем условии if для успеха, и страница перезагрузится после условия успеха.
if(success == true)
{
//For wait 5 seconds
setTimeout(function()
{
location.reload(); //Refresh page
}, 5000);
}
Я предпочитаю этот способ Использование ajaxStop
+ setInterval
,, это обновит страницу после любого запроса XHR[ajax] на той же странице
$(document).ajaxStop(function() {
setInterval(function() {
location.reload();
}, 3000);
});
var val = $.parseJSON(data);
if(val.success == true)
{
setTimeout(function(){ location.reload(); }, 5000);
}
Просто используйте
$.ajax({
success: function (response) {
location.reload();
},
error : function(xhr,errmsg,err) {
console.log(xhr.status + ": " + xhr.responseText); // provide a bit more info about the error to the console
}
});
$.ajax("youurl", function(data){
if (data.success == true)
setTimeout(function(){window.location = window.location}, 5000);
})
)
Здесь много хороших ответов, просто из любопытства после изучения этого сегодня, не лучше ли использовать setInterval
а не setTimeout
?
setInterval(function() {
location.reload();
}, 30000);
дайте мне знать ваши мысли.