使用 location.href 或 window.location.reload(true) 重新加载页面

Reload a page with location.href or window.location.reload(true)

我需要在 ajax 调用成功后重新加载页面。

我看到了一些代码(不是我的),有两种方法:

success: function(obj) {
  //code
  location.href = location.href;
}

success: function(obj) {
  //code
  window.location.reload(true);
}

行为有什么不同吗?我知道 locationwindow.location 的区别,但在工作方面?

主要区别如下:

window.location.reload() reloads the current page with POST data, while window.location.href='your url' does not include the POST data.

此外,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),那么浏览器将跳过缓存,然后从服务器重新加载页面。