我需要在ajax请求成功后重新加载页面。
我看到一些代码(不是我的),有两种方式:
success: function(obj) {
//code
location.href = location.href;
}
或者success: function(obj) {
//code
window.location.reload(true);
}
行为上有什么不同吗?我知道 location
和 window.location
的区别,但在工作方面有什么区别吗?
我需要在ajax请求成功后重新加载页面。
我看到一些代码(不是我的),有两种方式:
success: function(obj) {
//code
location.href = location.href;
}
或者success: function(obj) {
//code
window.location.reload(true);
}
行为上有什么不同吗?我知道 location
和 window.location
的区别,但在工作方面有什么区别吗?
主要区别如下:
window.location.reload()
重新加载当前页面并包括POST
数据,而window.location.href='your url'
不包括POST
数据。
此外,window.location.reload(true)
方法会从服务器重新加载页面。浏览器将跳过缓存。
例如,我看到您正在使用 AJAX 请求的 success
函数。
假设您有以下方法:
[OutputCache(Duration=600)]
public ActionResult Homepage(){
//code here
return View();
}
如果你在使用 window.location.href="location_URL"
,那么浏览器会缓存数据 600
秒,也就是10分钟。
另一方面,如果你使用 window.location.reload(true)
,那么浏览器将跳过缓存并从服务器重新加载页面。
window.location.href=window.location.href
不会重新加载页面。 - adl以下是我的版本,使用上述代码作为Razor按钮处理程序:
private async Task Reset()
{
await js.InvokeVoidAsync("window.location.reload",true);
}
window.location.reload(true);
会从服务器重新加载页面,而不是从缓存中加载。window.location.reload();
与location.href = location.href;
做的事情相同,除了window.location.reload()
包括一个post。 - Kevin Kloet