Back

Alternatives modernes à javascript:location.reload(true) : Comment forcer le rechargement d'une page en JavaScript

Alternatives modernes à javascript:location.reload(true) : Comment forcer le rechargement d'une page en JavaScript

Utilisez-vous encore location.reload(true) en JavaScript pour forcer le rechargement d’une page ? Bien que cette méthode fonctionne dans certains navigateurs, le paramètre forceGet est obsolète et ne fait pas partie des standards web. Dans ce guide concis, nous explorerons des alternatives modernes et compatibles avec tous les navigateurs à javascript:location.reload(true) pour rafraîchir une page web et contourner le cache.

Points clés

  • location.reload(true) est obsolète. Utilisez des méthodes alternatives, compatibles avec tous les navigateurs
  • Ajoutez un paramètre de requête unique pour forcer un rechargement et contourner le cache
  • window.location.reload() sans arguments est la méthode de rechargement standard
  • Évitez les rechargements de page lorsque cela est possible pour une meilleure performance et expérience utilisateur

Comprendre location.reload()

La méthode location.reload() recharge l’URL actuelle, de manière similaire au bouton Actualiser du navigateur. Elle a un paramètre optionnel forceGet (par défaut false) qui, lorsqu’il est true, contourne le cache et recharge la page depuis le serveur. Cependant, ce paramètre n’est pas standard et n’est pris en charge que dans Firefox.

Pourquoi location.reload(true) est obsolète

Le drapeau forceGet dans location.reload(true) est obsolète car :

  • Il ne fait pas partie de la spécification HTML
  • Il n’est pris en charge que dans Firefox, ce qui entraîne des incohérences entre les navigateurs
  • Il existe des moyens plus fiables et standardisés de forcer un rechargement

Méthodes modernes pour forcer le rechargement d’une page

Voici des techniques actuelles, compatibles avec tous les navigateurs, pour recharger une page sans utiliser location.reload(true) :

1. Ajouter un paramètre de requête d’horodatage

Ajoutez un paramètre de requête unique à l’URL pour faire croire au navigateur qu’il s’agit d’une nouvelle page. Un horodatage fonctionne bien :

window.location.href = window.location.href + '?timestamp=' + new Date().getTime()

2. Utiliser window.location.reload() sans forceGet

Appelez simplement reload() sans aucun argument. Bien que cela ne garantisse pas un contournement du cache, c’est la méthode standard, compatible avec tous les navigateurs :

window.location.reload()

3. Utiliser l’affectation window.location.href

Affectez window.location.href à lui-même pour recharger :

window.location.href = window.location.href

Cependant, cela ajoute une nouvelle entrée dans l’historique. Pour éviter cela, utilisez window.location.replace() :

window.location.replace(window.location.href)

Bonnes pratiques pour les rechargements de page

  • Évitez de recharger si possible. Mettez à jour le contenu dynamiquement avec AJAX ou utilisez un framework SPA
  • Si vous devez recharger, utilisez des méthodes standard comme l’ajout d’un paramètre de requête
  • Tenez compte des implications en termes de performances et d’expérience utilisateur lors du rechargement
  • Méfiez-vous des boucles de rechargement infinies

FAQ

Le paramètre `forceGet` dans `location.reload(true)` est non standard et ignoré dans la plupart des navigateurs. Il n'est pris en charge que dans Firefox mais reste obsolète.

Dans les SPA, il est généralement préférable de mettre à jour les données dynamiquement plutôt que de recharger. Cependant, si nécessaire, vous pouvez utiliser l'API History pour manipuler l'URL et forcer l'application à se recharger.

Conclusion

En comprenant pourquoi javascript:location.reload(true) est obsolète et en utilisant des alternatives modernes comme l’ajout de paramètres de requête ou window.location.reload(), vous pouvez vous assurer que votre code JavaScript est conforme aux normes et fonctionne de manière cohérente dans tous les navigateurs.” />

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers