如果 Ajax 在预测时间后成功,则 jQuery 刷新/重新加载页面
Posted
技术标签:
【中文标题】如果 Ajax 在预测时间后成功,则 jQuery 刷新/重新加载页面【英文标题】:jQuery Refresh/Reload Page if Ajax Success after predicted time 【发布时间】:2015-02-23 14:22:08 【问题描述】:我使用 Jquery 发出 Ajax 请求。服务器返回值为“true or false”的 Json 对象,如下所示:
return Json(new success = false, JsonRequestBehavior.AllowGet );
如果服务器返回true,有什么方法可以在5秒后刷新页面?
【问题讨论】:
【参考方案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 秒后重新加载页面,因此您需要按照答案中的建议设置超时。
【讨论】:
5000是什么意思..? @BalaKarthik 以毫秒为单位的时间,等于 5 秒。 5000 表示 5000 毫秒(1 秒 = 1000 毫秒)【参考方案2】:location.reload();
您可以在if
条件中使用reload
功能成功,条件成功后页面将重新加载。
【讨论】:
重新加载页面是个好主意,但这里的重点是 setTimeout 函数:)【参考方案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】:我更喜欢这种方式
使用ajaxStop
+ setInterval
, 这将在同一页面中的任何 XHR[ajax] 请求后刷新页面
$(document).ajaxStop(function()
setInterval(function()
location.reload();
, 3000);
);
【讨论】:
它适用于我,但 roload on loop 有没有办法让它只在 Ajax 值更改时才起作用 @SaidErraoudy 你可以让if statement
来检查值是否改变了
类似的东西:jsfiddle.net/wLyoqrme/1
@SaidErraoudy 创建一个全局标志变量,并在您从服务器获得结果时设置它的值。然后将当前结果与之比较【参考方案6】:
$.ajax("youurl", function(data)
if (data.success == true)
setTimeout(function()window.location = window.location, 5000);
)
)
【讨论】:
【参考方案7】:这里有很多很好的答案,只是出于好奇,今天研究了一下,使用setInterval
而不是setTimeout
不是最好吗?
setInterval(function()
location.reload();
, 30000);
让我知道你的想法。
【讨论】:
setTimeout 函数只调用一次,setInterval 会被调用多次。你知道在这种情况下哪个更合适更好【参考方案8】:随便用
$.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 在预测时间后成功,则 jQuery 刷新/重新加载页面的主要内容,如果未能解决你的问题,请参考以下文章
openssl RSA_verify在openssl证书过期后成功。