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