我使用jQuery发起一个Ajax请求。服务器返回JSON对象,其中的值是"true或false",格式如下:
return Json(new { success = false, JsonRequestBehavior.AllowGet });
如果服务器返回true,是否有办法在5秒后刷新页面?
在您的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
语句中使用reload
函数来重新加载页面。
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);
});
if语句
来检查值是否已更改。 - A. El-zahabyvar val = $.parseJSON(data);
if(val.success == true)
{
setTimeout(function(){ location.reload(); }, 5000);
}
$.ajax("youurl", function(data){
if (data.success == true)
setTimeout(function(){window.location = window.location}, 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
}
});
这里有很多好的答案,只是出于好奇今天研究了一下,难道不是最好使用setInterval
而不是setTimeout
吗?
setInterval(function() {
location.reload();
}, 30000);
让我知道你的想法。