Détection JavaScript des changements de hachage de localisation
Lors de l'utilisation d'Ajax et du hachage pour la navigation, il est souvent essentiel de détecter les changements dans le hachage de localisation, à titre indicatif de l'état de navigation.
Vérification du document Charger
Au départ, la vérification du hachage d'emplacement lors du chargement du document fonctionne bien. Cependant, lorsque vous utilisez une navigation basée sur le hachage et que vous appuyez sur le bouton Précédent du navigateur (par exemple, en passant de #456 à #123), le changement de hachage n'est pas facilement capturé par JavaScript.
Approche d'interrogation par intervalles
La solution traditionnelle consiste à définir un intervalle qui vérifie en permanence le hachage actuel et le compare au précédent. Si une différence est détectée, un événement « modifié » est déclenché, permettant aux abonnés de répondre. Cette méthode n'est pas idéale mais constitue une solution de secours pour les navigateurs qui ne prennent pas en charge nativement cet événement.
Solution jQuery
Pour ceux qui utilisent jQuery, une solution plus élégante est disponible . jQuery fournit la fonction on() pour écouter les événements hashchange sur l'objet window. Cette abstraction simplifie le processus sans nécessiter de connaissance de la prise en charge de hashchange.
Événements spéciaux jQuery
Cependant, certains navigateurs peuvent ne pas prendre en charge nativement les événements de hashchange. Pour résoudre ce problème, jQuery permet l'utilisation d'événements spéciaux. Dans ce cas, le code d'installation peut être utilisé pour vérifier la prise en charge native du navigateur. En cas d'absence, une minuterie est établie pour interroger les modifications et déclencher l'événement jQuery. Cette approche isole le code des problèmes de support.
En mettant en œuvre ces techniques, les développeurs peuvent détecter efficacement les changements de hachage d'emplacement et réagir en conséquence, permettant une navigation basée sur le hachage robuste et réactive dans les applications Ajax.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!