Voici une autre solution avec setTimeout, pas parfaite, mais qui fonctionne :
Il nécessite un paramètre dans l'url courante, donc il suffit d'imaginer que l'url courante ressemble à ceci :
www.google.com?time=1
Le code suivant permet de recharger la page 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 à ce problème.
J'espère que cela aidera d'autres personnes.
1 votes
Qu'accomplissez-vous en rechargeant la page ? Il y a peut-être une meilleure façon de résoudre le problème.
0 votes
Il y a une galerie jquery fullscreen script qui démarre sur la page, mais les vignettes ne sont jamais chargées complètement. si vous appuyez sur le bouton "refresh" pour la page, elle charge juste les vignettes restantes... donc il est clair que je cherche une sorte de solution de contournement... donner les vignettes séparément est trop compliqué (CMS), les autres corrections de bugs n'ont pas vraiment aidé... Il y a 4 MB d'images, environ 300kb chacune, à un moment donné les pouces des images ne sont plus redimensionnés et affichés (timeout ? trop, trop gros ??) mais la page finit de se charger.
0 votes
J'ai rencontré un problème similaire (les javascripts ne fonctionnent pas) lors de l'utilisation de pjax. pjax.heroku.com .