Je voudrais implémenter un code JavaScript qui dit ceci:
window.onload = function () {window.location.reload()}
cela donne une boucle sans "une seule fois". jQuery est chargé si cela aide.
Je dirais utiliser hash, comme ceci:
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload();
}
}
<script type="text/javascript">
$(document).ready(function(){
//Check if the current URL contains '#'
if(document.URL.indexOf("#")==-1){
// Set the URL to whatever it was plus "#".
url = document.URL+"#";
location = "#";
//Reload the page
location.reload(true);
}
});
</script>
En raison de la condition if, la page ne rechargera qu'une seule fois.J'ai aussi fait face à ce problème et lorsque j'ai cherché, j'ai trouvé cette belle solution .Cela fonctionne bien pour moi.
Lorsque je rencontre ce problème, je cherche ici mais la plupart des réponses tentent de modifier l’URL existante. Voici une autre réponse qui fonctionne pour moi en utilisant localStorage.
<script type='text/javascript'>
(function()
{
if( window.localStorage )
{
if( !localStorage.getItem('firstLoad') )
{
localStorage['firstLoad'] = true;
window.location.reload();
}
else
localStorage.removeItem('firstLoad');
}
})();
</script>
Cochez ce lien qui contient un code de script Java que vous pouvez utiliser pour actualiser votre page une seule fois
Il existe plusieurs façons d'actualiser votre page:
solution1 :
Pour actualiser une page une fois à chaque ouverture, utilisez:
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
sollution2:
<script language=" JavaScript" >
<!--
function LoadOnce()
{
window.location.reload();
}
//-->
</script>
Puis changez votre dire
<Body onLoad=" LoadOnce()" >
solution3:
response.setIntHeader("Refresh", 1);
Mais cette solution actualisera la page plusieurs fois selon le temps que vous spécifiez.
J'espère que cela vous aidera
je mets cela dans ma tête tags de la page je veux un seul recharger sur:
<?php if(!isset($_GET['mc'])) {
echo '<meta http-equiv="refresh" content= "0;URL=?mc=mobile" />';
} ?>
la valeur "mc" peut être définie sur ce que vous voulez, mais les deux doivent correspondre dans les 2 lignes. et le "= mobile" peut être "= tout ce que vous voulez", il lui faut simplement une valeur pour arrêter l'actualisation.
Après la balise </body>
:
<script type="text/javascript">
if (location.href.indexOf('reload')==-1)
{
location.href=location.href+'?reload';
}
</script>
Vous devez utiliser les informations GET ou POST. GET serait le plus simple. Votre JS vérifierait l'URL; si un certain paramètre n'était pas trouvé, il ne rafraîchirait pas simplement la page, mais enverrait plutôt l'utilisateur à une URL "différente", qui serait la même adresse mais avec le paramètre GET .
Par exemple:
http://example.com -> sera actualisé
http://example.com?refresh=no -> ne s'actualise pas
Si vous ne voulez pas que l'URL soit en désordre, alors j'inclurai un PHP au début du corps qui renvoie une valeur cachée qui indique essentiellement si le paramètre POST nécessaire pour ne pas rafraîchir la page a été inclus dans la demande de page initiale. Immédiatement après, vous devez inclure un JS pour vérifier cette valeur et actualiser la page AVEC ces informations POST si nécessaire.
S'il vous plaît essayez avec le code ci-dessous
var windowWidth = $(window).width();
$(window).resize(function() {
if(windowWidth != $(window).width()){
location.reload();
return;
}
});
var foo = true;
if (foo){
window.location.reload(true);
foo = false;
}
utilisez window.localStorage ... comme ceci
var refresh = $window.localStorage.getItem('refresh');
console.log(refresh);
if (refresh===null){
window.location.reload();
$window.localStorage.setItem('refresh', "1");
}
C'est un travail pour moi
Essayez avec ça
var element = document.getElementById('position');
element.scrollIntoView(true);`
Enfin, j'ai eu une solution pour recharger une page une fois après deux mois de recherche.
Cela fonctionne bien sur mon projet JS côté client.
J'ai écrit une fonction qui dessous la page de rechargement une seule fois.
1) Obtenir d'abord le temps de chargement du navigateur
2) Obtenir l'horodatage actuel
3) Temps de chargement du navigateur + 10 secondes
4) Si le temps de chargement du navigateur est 10 fois plus long que l'horodatage actuel, la page peut être actualisée via "reloadPage ();"
Mais si elle ne dépasse pas 10 secondes, cela signifie que la page est simplement rechargée, elle ne sera donc pas rechargée à plusieurs reprises.
5) Par conséquent, si vous appelez "reloadPage ();" fonctionner dans quelque part dans votre page de fichier js ne sera rechargé une fois.
J'espère que ça aide quelqu'un
// Reload Page Function //
function reloadPage() {
var currentDocumentTimestamp = new Date(performance.timing.domLoading).getTime();
// Current Time //
var now = Date.now();
// Total Process Lenght as Minutes //
var tenSec = 10 * 1000;
// End Time of Process //
var plusTenSec = currentDocumentTimestamp + tenSec;
if (now > plusTenSec) {
location.reload();
}
}
// You can call it in somewhere //
reloadPage();
utilisez ceci
<body onload = "if (location.search.length < 1){window.location.reload()}">
Voici une autre solution avec setTimeout, pas parfaite, mais ça fonctionne:
Il nécessite un paramètre dans l'URL actuelle, il suffit donc de se représenter l'image suivante:
www.google.com?time=1
Le code suivant rend la page recharger une seule fois:
// Reload Page Function //
// get the time parameter //
let parameter = new URLSearchParams(window.location.search);
let time = parameter.get("time");
console.log(time)//1
let timeId;
if (time == 1) {
// reload the page after 0 ms //
timeId = setTimeout(() => {
window.location.reload();//
}, 0);
// change the time parameter to 0 //
let currentUrl = new URL(window.location.href);
let param = new URLSearchParams(currentUrl.search);
param.set("time", 0);
// replace the time parameter in url to 0; now it is 0 not 1 //
window.history.replaceState({}, "", `${currentUrl.pathname}?${param}`);
// cancel the setTimeout function after 0 ms //
let currentTime = Date.now();
if (Date.now() - currentTime > 0) {
clearTimeout(timeId);
}
}
La réponse acceptée utilise le moins de code possible et est facile à comprendre. Je viens de fournir une autre solution à cela.
J'espère que cela aide les autres.