Comment puis-je détecter une barre d'adresse changement avec le JavaScript?

J'ai un Ajax lourds application qui peut avoir une URL telle que

http://example.com/myApp/#page=1

Lorsqu'un utilisateur manipule le site, la barre d'adresse peut changer pour quelque chose comme

http://example.com/myApp/#page=5

sans recharger la page.

Mon problème est le suivant de la séquence:

  1. Un utilisateur signets de la première URL.
  2. L'utilisateur manipule l'application de telle sorte que la deuxième URL est l'état actuel.
  3. L'utilisateur clique sur le signet créé à l'étape 1.
  4. L'URL dans la barre d'adresse changements de http://example.com/myApp/#page=5 à http://example.com/myApp/#page=1, mais je ne sais pas de manière à détecter le changement qui s'est passé.

Si je détecte un changement de certaines JavaScript serait agir sur elle.

  • Je suis curieux, pourquoi l'application conçue de cette façon? Je ne vois aucun besoin réel pour le changement d'URL.
  • Il fonctionne comme une chaîne de requête, mais ne cause pas le navigateur à recharger la page. C'est qui a été fait, de sorte que la charge du client n'a pas à être récupéré et chargé à chaque fois qu'une page est modifiée. La charge utile n'est pas facilement mis en cache, nécessite JavaScript temps d'initialisation, et ne serait pas fournir au client un sans heurt de l'expérience.
InformationsquelleAutor JoshNaro | 2009-12-18