Détecter le navigateur Rafraîchir en Javascript

Je suis curieux s'il existe un moyen de détecter spécifiquement l'événement de rafraîchissement du navigateur. Nous utilisons le plugin jQuery.address pour fournir des fonctionnalités de bouton arrière et arrière aux fonctions AJAX. Le problème auquel je suis confronté est que ce plugin ne semble pas détecter si l'utilisateur a actualisé la page.

Ce code est exécuté chaque fois que l'utilisateur avance ou retourne dans l'historique du navigateur. J'aimerais aussi que cela s'exerce lorsque l'utilisateur est rafraîchi.

$.address.init(function(event) { }).change(function(event) { SummaryDiv.SwapPanels(newPanelID); } 

Des idées?

Une tentative naïve de mienne serait de simplement stocker l'état actuel dans un cookie après chaque changement et de les charger simplement sur chaque chargement de page.

Dans ce sens, j'ai eu une page dont je ne voulais pas répéter le comportement si je me suis rafraîchi, alors j'ai changé le hash par programme, comme décrit dans cette réponse .

 checkRefresh: function() { if (document.location.hash === '#visited') { console.log('Refreshed'); return true; } else { document.location.hash = 'visited'; return false; } } 

METTRE À JOUR

J'ai constaté qu'au moins Mobile Safari ignorerait le hash si l'actualisation s'est produite automatiquement (par exemple, les données de la page ont été supprimées du cache avant d'être visualisées à nouveau). J'ai fini par utiliser une solution plus complexe décrite ici .

J'ai trouvé ça sur le Web pour vous …

A une méthode intelligente javascript avec une méthode de cookies.

http://www.tedpavlic.com/post_detect_refresh_with_javascript.php

Sur une page actualisée, le javascript est également rechargé. Alors, ne pouvez-vous pas spécifier ce que vous voulez faire directement dans la méthode de jQuery?

J'ai pu forcer le code d'événement de changement à s'exécuter lors du rafraîchissement par

  window.onload = $.address.update(function(){ ... })