Windows.history.back() + location.reload() jquery

前端 未结 7 1200
[愿得一人]
[愿得一人] 2021-02-05 05:30

I\'ve a probleme in my code. The aim is to complete a simple form, then you click on a submit button. It do an Ajax resquest to go in the method. On success in the ajax request,

7条回答
  •  闹比i
    闹比i (楼主)
    2021-02-05 06:23

    After struggling with this for a few days, it turns out that you can't do a window.location.reload() after a window.history.go(-2), because the code stops running after the window.history.go(-2). Also the html spec basically views a history.go(-2) to the the same as hitting the back button and should retrieve the page as it was instead of as it now may be. There was some talk of setting caching headers in the webserver to turn off caching but I did not want to do this.

    The solution for me was to use session storage to set a flag in the browser with sessionStorage.setItem('refresh', 'true'); Then in the "theme" or the next page that needs to be refreshed do:

    if (sessionStorage.getItem("refresh") == "true") { 
        sessionStorage.removeItem("refresh"); window.location.reload()
    }
    

    So basically tell it to reload in the sessionStorage then check for that at the top of the page that needs to be reloaded.

    Hope this helps someone with this bit of frustration.

提交回复
热议问题