Noooooooonnnn Hermann, pas de display:none qui charge tout sans rien afficher ! Du coup l'inconvénient est double : tu payes (en temps, en volume,...) le load et tu ne profites pas du contenu.
Y'a un double problème à résoudre : par quel biais accéder au contenu (mediaquery, handheld, screen qui s'affichera comme il pourra genre iPhone), et le contenu distribué.
Pour le moment les solutions que j'applique sont, concernant l'accès, d'envoyer un CSS handheld à qui en veut bien (d'acc avec Florent qu'il va devenir obsolète car la frontière entre ce qui relève de handheld et screen s'estompe de jour en jour) mais surtout de détecter (oui, je sais bien...) la taille du viewport et de proposer, dans les skiplinks, une version handheld à switcher, lien qui n'apparaît donc que dans les UA concernés. Après, l'utilisateur fait ce qu'il veut.
En attendant de voir où les mediaqueries nous mèneront, c'est la soluce la plus économique (temps, énergie, dév., ressources) que j'aie trouvée.
Pour les contenus, deux possibilités : soit comme le dit Florent, développer un site parallèle pour servir les mobiles, mais avec beaucoup d'inconvénients, dont celui de conformation (les deux sites doivent être maintenus et mis à jour simultanément), celui de pertinence (pourquoi telle info et pas telle autre ?), celui de cohérence du dispositif (comme pour handheld, où fixer la limite entre un gros PDA et un ultra-portable super petit ?)
La solution que je suis en train de tester/développer est un peu complexe mais finalement pas tellement. Elle ne marche évidemment que sur des sites à "taille humaine" : ça consiste à créer un seul contenu (c'est mon dada) mais de le servir de façon distincte. La difficulté consiste à pouvoir dès l'amont concevoir l'offre globale du site et ensuite d'en "exploser" le contenu (j'adoooore). Comment ?
En gros tu as au départ un document web hiérarchisé en h1 > h6. Mettons (là ça dépend vraiment de chaque site et de chaque contenu) qu'on fixe empiriquement la barre à h3 : ton document initial contient en dur TOUS les éléments jusqu'à h3. Tout ce qui inclus DANS (ou SOUS) h3 - conçu alors comme une boite contenant quelque chose : des "objets web" - est séparé. En version "non-détectée comme petit viewport" des includes appellent dynamiquement les contenus h3 à venir prendre leur place naturelle dans le flux. Le site s'affiche donc normalement.
C'est ensuite que ça se complique un peu. Une condition PHP avec un peu de regex remplit deux fonctions :
1. elle "mute" les h3 en liens <a href= (tu vois tout de suite pourquoi)
2. elle delete les appels include
En gros donc, elle crée dynamiquement un "second" document différent du premier.
Résultat : en "viewport réduit", tu affiches (soit optionnellement soit de façon contrainte, à toi de voir) la structure intégrale du site et propose des liens pour consulter les sous-parties comme documents autonomes => PHP génère alors un document à la volée constitué du contenu global jusqu'à h3 + le contenu demandé. Il n'y a qu'un seul site et l'intégralité de l'offre est consultable, ce qui est normalement le but de tout projet web.
Ça nécessite évidemment une structuration initiale rigoureuse mais (et hop, un petit coup de crossposting
) ça permet de n'avoir qu'un seul contenu auquel tout utilisateur pourra ultérieurement , s'il le veut ou s'il le peut, appliquer ses propres préférences.
Si tu crées en plus une CSS spéciale (viewport.css) qui dit comment gérer un certain nombre de choses, tu arrives au final à un site unique qui permet la "mutabilité des contenus" (il y a bien "mutation" dans le fait de passer un <h3> en <a href> selon certains critères). Je sais bien que le terme de mutabilité des contenus a beaucoup amusé certains, mais c'est là une application pratique comme une autre.
Ça reste bien sûr expérimental mais ça donne des résultats prometteurs. Ça fait bien sûr du boulot serveur supplémentaire mais le bénéfice peut le justifier.
a+
(edit : j'ajoute un petit graph qui explique le principe)
et j'ajoute qu'en terme de référencement on évite aussi le risque le le "petit" site soit mieux positionné par Google que le "gros", ce qui serait carrément désagréable
Modifié par Arsene (20 Oct 2008 - 12:00)