In this Javascript How-To Tutorial, we are going to learn a very useful technique. We will discuss multiple ways to One-time page refresh after the first-page load automatically using Javascript or JQuery.
Javascript can be very useful for Frontend and Backend Development, The one language to rule them all, as they say.
Let’s consider Your Developing Some API based web app and for testing purposes, you need to reload web page after fully loading once and you want to do it using Javascript/jQuery.This is just one example, there can be any reason you want to achieve this.First, we learn to reload once using javascript.
Also checkout, 5 ways to shuffle an array using javascript ES6
Article Contents
How to Auto-refresh page once only after the first load Using Javascript
Using window.onload:
//add this js script into the web page,
//you want reload once after first load
window.onload = function() {
//considering there aren't any hashes in the urls already
if(!window.location.hash) {
//setting window location
window.location = window.location + '#loaded';
//using reload() method to reload web page
window.location.reload();
}
}
Using window.localStorage:
//we will auto-triggering js function
//to refresh once after first load
(function()
{
if( window.localStorage )
{
//check if reloaded once already
if( !localStorage.getItem('firstLoad') )
{
//if not reloaded once, then set firstload to true
localStorage['firstLoad'] = true;
//reload the webpage using reload() method
window.location.reload();
}
else
localStorage.removeItem('firstLoad');
}
})();
How to Auto-refresh page once only after the first load Using JQuery
First Method:
//this method is simialr to first js method above
//Jquery initialize
$(document).ready(function(){
//Check if the current URL contains '# or hash'
if(document.URL.indexOf("#")==-1){
// Set the URL to whatever it was plus "#loaded".
url = document.URL+"#loaded";
location = "#loaded";
//Reload the page using reload() method
location.reload(true);
}
});
The second method using cookie:
body onload='if(document.cookie.indexOf("refreshcookie") == -1){
document.cookie="refreshcookie=1";
location.reload();
};'
Using the localStorage method in JQuery:
//modily according to your requirement
$(document).ready(function(){
document.body.innerText = 'checking';
if (localStorage.getItem('isLoaded') !== 'yes') {
localStorage.setItem('isLoaded', 'yes');
alert('reloading now');
document.body.innerText += ' - loaded once';
location.reload();
} else {
alert('not reloading');
document.body.innerText += ' - loaded twice';
}
});
All these code snippets are tested and working, you can use any snippet and achieve the same result of js relad once after the first load. If you have queries, please comment below or if you have any other code snippet, please share below and we will add to the article with credits.