开发者

how to refresh the browser after the page is loaded

开发者 https://www.devze.com 2023-03-27 06:49 出处:网络
I have a scenario to refresh the browser after the page is loaded for first time or one time. B开发者_开发问答ecause the data is not showing properly when the pages is loaded,and when i refresh the br

I have a scenario to refresh the browser after the page is loaded for first time or one time. B开发者_开发问答ecause the data is not showing properly when the pages is loaded,and when i refresh the browser it is showing.I don't know the reason.

Many Thanks


So you only want the browser to refresh once? Do something like this.

window.onload = function(){
    if(!document.location.hash){
        window.location = "#loaded";
    }
}

or jquery

$(document).ready(function(){
    if(document.location.hash){
        window.location = "#loaded";
    }
});

But in all honesty this is just a temporary solution. As much as you try to cover it up with quick fixes. I guarantee it will come back to haunt you. Well written and structured code will last a lifetime and can always be reused on future projects.


Invariably, you're going to have to use some JavaScript. What you want is for your refresh code to run when the page is completely loaded. You could use the HTML onload event, but there are problems with this (e.g. it will fire before any images are loaded). I would suggest using JQuery's ready() event, if you want to be sure it fires after the entire page is loaded.

Example:

// NOTE: This will only work with JQuery loaded.
$(document).ready(function(){
    location.reload(true);
});

Making this only fire on the first page load is a bit more tricky. You could add an anchor suffix to the URL to keep track of whether you've refreshed the page yet or not, and then only refresh if it is not present in the URL:

$(document).ready(function(){
    if(location.hash != "#")
    {
        // Set the URL to whatever it was plus "#".
        // (The page will NOT automatically reload.)
        location = "#";

        // Reload the page.
        location.reload(true);
    }
});

Alternatively, you could use the query string, since this will automatically refresh the page when changed:

$(document).ready(function(){
    var marker = 'r'; // 'r' is for "refreshed"
    if(location.search != "?"+marker)
    {
        // Set the URL to whatever it was plus "?r".
        // (This will automatically force a page reload.)
        location = "?"+marker;
    }
});

Caveat: With either of these samples, if your user bookmarks the page after the "#" or "?r" tag has been added to the URL, the page won't refresh when they revisit the page. If you want it to be bulletproof, you might have to use a cookie instead.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号