Détection des changements de hachage de localisation pour la navigation en temps réel
Lors de l'utilisation d'Ajax et du hachage pour la navigation, déterminer si window.location.hash a changé devient essentiel. Bien que les méthodes traditionnelles puissent fonctionner lors du chargement du document, elles ne parviennent pas à capturer les modifications de hachage lors de la navigation à l'aide du bouton Précédent du navigateur.
Limitation de la prise en charge du navigateur
Malheureusement, les navigateurs ne le font pas nativement fournir un événement pour surveiller les changements de hachage d'emplacement. Cette limitation pose un défi pour les mises à jour de navigation en temps réel.
Solution : interrogation par intervalles
La solution la plus fiable consiste à définir un intervalle qui vérifie en permanence le hachage actuel et compare avec la valeur précédente. Lorsqu'un changement se produit, un événement peut être déclenché pour avertir les abonnés. Bien qu'elle ne soit pas idéale, cette approche détecte efficacement les changements de hachage, comme le démontre la bibliothèque populaire « reallysimplehistory ».
Abstraction jQuery
Si votre projet utilise jQuery, un outil plus accessible une option émerge. L'abstraction de jQuery permet d'écouter les événements « hashchange » sur l'objet window, offrant ainsi une solution plus simple.
$(window).on('hashchange', function() { // Handle hash change event });
Cependant, étant donné que la prise en charge native du navigateur pour « hashchange » reste incohérente, jQuery utilise une fonctionnalité « événement spécial ». . Cette fonctionnalité vous permet de configurer un code qui vérifie la prise en charge native et déclenche des interrogations et le déclenchement d'événements si la prise en charge native fait défaut.
Conclusion
Malgré l'absence de navigateur natif prise en charge, en utilisant l'interrogation par intervalles ou l'abstraction de jQuery fournit des moyens efficaces pour surveiller les changements de hachage de localisation, permettant ainsi des techniques sophistiquées de navigation en temps réel dans vos applications Web.
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!