-
Notifications
You must be signed in to change notification settings - Fork 2
Chapitre 02
- Implémenter jQuery Mobile à partir d'un CDN
- Créer et naviguer entre plusieurs pages sur un seul fichier
- Ajouter des liens externes sans faire d'appel Ajax
- Créer et naviguer entre plusieurs pages sur plusieurs fichiers
- Surcharger le title des pages sur un même fichier
- Pré-charger des contenus
- Appliquer une transition entre chaque page
Sur la page des téléchargement de jQuery Mobile http://jquerymobile.com/download/, récupérer les balises <link> et <script> ou copier-coller le snippet suivant :
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>et les remplacer par les balises que nous avions inséré précédemment.
Il est possible d'ajouter plusieurs page sur un même fichier en ajoutant plusieurs blocs dotés de l'attribut data-role=page. Chaque bloc doit prendre un attribut id avec un identifiant unique. Une balise <a> avec un lien ancré #maPage permet de naviguer entre les pages.
<div data-role="page" id="homePage">
<!-- afficher la page aboutPage -->
<a href="#aboutPage">A propos de cette formation</a>
</div>
<div data-role="page" id="aboutPage">
<!-- afficher la page homePage -->
<a href="#homePage">Retour à la page d'accueil</a>
</div>Dès qu'il voit un lien, jQuery Mobile exécute un appel Ajax pour charger la page identifiée par l'id correspondant à la place de la page en cours.
Dans certains cas un travail peut être fait sur des liens externes et l'appel Ajax peut poser un problème car la librairie jQuery Mobile est toujours chargée. Il est possible de demander à jQuery Mobile de suivre un lien externe sans faire appel à Ajax pour afficher la page externe à notre application en utilisant l'attribut data-ajax="false" comme dans l'exemple ci-dessous :
<div data-role="page" id="homePage">
<!-- lien vers page externe -->
<a href="http://www.webinfoparis.fr" data-ajax="false">webinfoparis.fr</a>
</div><div role="page" id="homePage">
<!-- naviguer vers page sur un autre fichier -->
<a href="programme.html">Programme de la formation</a>
</div>jQuery Mobile exécute un appel Ajax pour charger le fichier programme.html à la place de la page en cours.
Vous remarquerez que lorsque l'on affiche deux pages sur deux fichiers différents, le title change car chaque fichier dispose de sa propre balise <title>. Notez cependant que lorsque l'on affiche deux pages présentes sur un même fichier, le contenu de la balise <title> change aussi. Cela est du au fait que jQuery Mobile utilise le contenu de l'élément data-role=header pour modifier le contenu de la balise <title>. Il est possible de surcharger le title en utilisant l'attribut data-title sur le bloc de page comme ceci :
<div data-role="page" id="aboutPage" data-title="Tout savoir sur la formation jQuery Mobile">Une web application peut contenir de très nombreuses pages. Aussi, mettre toutes les pages dans un seul et même fichier peut aboutir à une application longue à charger et difficile à maintenir. Il est donc préférable d'utiliser plusieurs fichiers. Cependant, le chargement de fichiers prend du temps. Il est possible de pré-charger des fichiers dès le lancement de l'application en utilisant l'attribut data-prefetch
<p><a href="programme.html" data-prefetch="true">Programme de la formation</a>.</p>Néanmoins pré-charger toutes les pages au chargement de l'application revient à mettre toutes les pages dans un même fichier au niveau du temps de chargement. Il est donc souhaitable de ne pré-charger que les pages importantes, celles consultées le plus souvent pour apporter une meilleure expérience utilisateur.
Il est possible de configurer jQuery Mobile en global pour les transitions entre chaque page. Nous reviendrons plus tard sur ce sujet. Pour effectuer une transition sur un lien spécifique, il suffit d'utiliser l'attribut data-transition.
Les différentes transitions proposées sont : fade (par defaut), flip, flow, pop, slide, slidedown, slidefade, turn et done.
<a href="p4.html" data-transition="pop">Revenir à la page p4</a>https://christophegueroult.github.io/jQueryMobile/CHAPITRE-02/p1.html https://christophegueroult.github.io/jQueryMobile/CHAPITRE-02/p2.html https://christophegueroult.github.io/jQueryMobile/CHAPITRE-02/p3.html https://christophegueroult.github.io/jQueryMobile/CHAPITRE-02/p4.html