简体   繁体   中英

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

I need to reload a page in a success of an ajax call.

I'm seeing some code (not mine) and there are two ways:

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

or

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

Is there any difference in the behaviour? I know the difference of both location and window.location but in terms of do the job?

The main difference is follow:

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

Further more, window.location.reload(true) method reload page from the server. And the browser will skip the cache.

For example, I see you are using success function from an AJAX request.

Suppose you have follow method:

[OutputCache(Duration=600)]
public ActionResult Homepage(){
   //code here
   return View();
}

If you are using window.location.href="location_URL" ,then browser cache data for 600 seconds, which means 10 minutes.

On the other hand, if you use window.location.reload(true) , then the browser will skip the cache and ,then, reload page from server.

My version, using above, as a Razor button handler:

private async Task  Reset()
{
    await js.InvokeVoidAsync("window.location.reload",true);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM