Maison > interface Web > js tutoriel > le corps du texte

Partager des exemples de création d'applications Web d'une seule page à l'aide du hachage JS

小云云
Libérer: 2018-01-26 10:54:35
original
1449 Les gens l'ont consulté

Dans cet article, nous expliquerons d'abord ce qu'est le hachage, quel rôle il joue et ce qu'est une application Web d'une seule page. Plus tard, nous présenterons un exemple de création d'une application Web d'une seule page à l'aide du hachage JS. j'espère que cela pourra aider tout le monde.

1. Qu'est-ce que le hachage

Le hachage (également appelé hachage) dont nous parlons ici fait référence à l'attribut hash de l'objet location dans JS, qui renvoie le # dans le URL suivie de zéro ou plusieurs caractères. Habituellement, nous pouvons obtenir la valeur de hachage ou définir la valeur de hachage via location.hash. Bien sûr, nous pouvons également définir la valeur de hachage en définissant l'attribut href de la balise a. Lorsque l'utilisateur clique sur la balise a, la valeur de hachage de la page peut être modifiée.

Par exemple :

/** JS方式 **/
location.hash = 'hash'; //设置hash,该代码执行后URL后面增加“#hash”字符串
console.log(location.hash); //获取hash
Copier après la connexion
/** HTML方式 **/
<a href="#hash" rel="external nofollow" >点击改变hash</a> <!-- 点击后URL后面增加“#hash”字符串 -->
Copier après la connexion

Il convient de noter que quelle que soit la façon dont vous modifiez la valeur de hachage, la page ne sera pas actualisée.

2. À quoi sert le hachage

1. Définir un lien d'ancrage

En définissant un lien d'ancrage (c'est-à-dire la méthode HTML ci-dessus), la page peut être basée sur l'identifiant de l'élément après avoir cliqué sur le lien Glissez vers la position spécifiée, même après le saut de page.

2. Réaliser la production d'applications d'une seule page

Les éléments correspondants peuvent être affichés ou masqués en fonction du changement de valeur de hachage, réalisant ainsi une commutation d'une seule page sans actualisation de page.

3. Qu'est-ce qu'une application Web à page unique ?

Une application Web à page unique (SPA) est une application avec une seule page Web. Elle charge une seule page HTML et l'affiche sur le site. utilisateur Application Web qui met à jour dynamiquement la page lorsque vous interagissez avec l'application.

Ce qui précède est l'explication de l'application à page unique (SPA) donnée par l'Encyclopédie Baidu, et l'utilisation du hachage peut rendre très pratique le basculement entre les « pages ».

4. Comment utiliser le hachage pour créer un SPA

Pour faire simple, affichez uniquement la première page, puis passez à l'affichage de différentes pages en modifiant la valeur de hachage, et la page précédente est caché.
Écrivez une démo simple ici :

1. Écrivez d'abord la structure HTML

<article class="container">
 <section id="page1" class="page cur">第一页</section>
 <section id="page2" class="page">第二页</section>
 <section id="page3" class="page">第三页</section>
</article>
<nav id="nav" class="bottom-nav">
 <ul>
  <li>第一页</li>
  <li>第二页</li>
  <li>第三页</li>
 </ul>
</nav>
Copier après la connexion

2. Ensuite, définissez le style CSS pour celle-ci

.page{ display: none; /* 其他样式省略 */}
.page.cur{ display: block;}
/* 其他样式省略 */
Copier après la connexion

3. .Écrivez du Javascript pour implémenter le changement de page unique

window.onload = function () {
 var nav = document.getElementById('nav');
 var navLi = nav.getElementsByTagName('li');
 for(var i = 0,len = navLi.length; i < len; i++){
  (function (i) { 
   navLi[i].onclick = function () { //点击nav中的li,改变hash值
    location.hash = 'page' + (i+1);
   }
  })(i);
 }
 location.hash = 'page1'; //每次页面重新加载时都回到page1
 window.onhashchange = function (e) { 
  //当hash变化时,执行hashchange事件,该事件具有oldURL和newURL两个事件属性,分别代表前一个URL和目前的URL
  var oldHash = e.oldURL.split('#')[1]; //取得前一个hash
  var newHash = e.newURL.split('#')[1]; //取得当前hash
  var oldPage = document.getElementById(oldHash);
  var newPage = document.getElementById(newHash);
  oldPage.classList.remove('cur'); //隐藏前一个page
  newPage.classList.add('cur');  //显示当前page
 };
}
Copier après la connexion

Il y a quelques points à noter ici IE n'est pas compatible avec les deux attributs oldURL et newURL, cette méthode a donc certaines limites. Bien sûr, une meilleure façon consiste à stocker initialement la valeur de hachage dans une variable sous le nom oldHash. La méthode spécifique est la suivante :

/**** 前面代码省略 ****/
location.hash = 'page1';
var oldHash = location.hash;
window.onhashchange = function (e) {
 var newHash = location.hash;
 var oldPage = document.querySelector(oldHash);
 var newPage = document.querySelector(newHash);
 oldPage.classList.remove('cur');
 newPage.classList.add('cur');
 oldHash = newHash;
};
Copier après la connexion

Il y a une autre chose à noter ici, c'est-à-dire que classList est dans IE9. et ci-dessous incompatibles, il est préférable d'obtenir le même effet en traitant l'attribut className, qui ne sera pas décrit en détail ici.

Recommandations associées :

Chapitre avancé du programmeur - Le tempérament de la table de hachage

exemple de code de la fonction de cryptage de hachage php

La différence entre les index btree et hash dans MySQL

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal