Bonjour,
AJAX permet de remplacer une partie d'une page par un nouveau contenu, certes MAIS
c'est une technologie complexe quand il s'agit de bien la mettre en oeuvre : gestion des callbacks, des erreurs c'est pas trop pour un débutant mais surtout il faut ensuite gérer l'URL (adresse) affichée par le navigateur ou dans l'autre sens réafficher le bon contenu si un visiteur tape une adresse de page interne (ou arrive dessus via Google ou l'a dans ses Favoris ou clique dessus dans un mail). Il faut gérer à la main tout ce qu'un navigateur web fait déjà sans qu'on ait d'effort à faire (le bouton Précédent par exemple). Ce sont des tâches connues avec des solutions mais encore faut-il savoir qu'elles existent, les tester, tout refaire, etc
Des sites comme Gizmodo et Lifehacker (et Twitter fût un temps ?) avaient foncé là-dedans et l'expérience utilisateur était horrible. Et bien sûr si pour une raison X ou Y, le JS ne se charge pas entièrement, on ne peut plus naviguer du tout sur le site alors qu'il n'est utilisé que pour faire quelque chose que le navigateur fait déjà.
Donc avant de passer des nuits blanches à réinventer la roue, déjà voir comment est affichée une page en temps normal : un serveur web "bien configuré" peut répondre à des milliers de requêtes par seconde. Un CMS comme WordPress a au moins 2 systèmes de cache PHP qui permettent de charger un bout de page ou une page entière en HTML statique sans faire appel à PHP et au CMS derrière, donc il n'y a pas 20 appels à la base de données, chargement de plein de fichiers et exécution de PHP... Idem pour SPIP, c'est intégré : un squelette et chaque fichier faisant partie d'un squelette ne sont "recalculés" que s'ils sont modifiés (ça peut être toutes les heures ou par l'admin, par défaut).
Ça c'était pour la page HTML : elle est instantanément servie si on se débrouille bien et elle ne pèse que 10 ou 20 ko, enfin pas grand chose par rapport aux images, JS et CSS (ce n'est pas les 3 listes UL qui font une sidebar qui vont alourdir une page !)
CSS et JS : un serveur doit être configuré pour les compresser (en gzip) et les mettre en cache dans le navigateur de chaque visiteur pour un temps très long. Et ça fonctionne. A la 1ère page affichée, tout CSS et JS sont chargés mais à partir de la 2e page, le serveur répond que non, pas modifié et le navigateur voit qu'il l'a conservé dans son cache, 0 téléchargement de ressource !
Images : les images du code HTML (élément img et équivalent) devraient également être en cache, mais beaucoup changent d'une page à l'autre.
Les images auxquelles la CSS fait référence (genre "url(/chemin/nom.png)") sont elles toutes chargées après la CSS du moment qu'il y est fait référence, dès la 1ère page et peu importe que la règle s'applique dans cette page. Non du coup j'hésite, j'ai tellement lu de trucs sur Retina que je ne suis plus sûr de la base... Bon quelqu'un d'autre confirmera ou infirmera
Bilan : si ton header, ta sidebar et ton footer sont identiques d'une page à l'autre, tout est déjà en cache lorsque la 2e page est demandée par le navigateur du visiteur, sauf le code HTML correspondant. Et ce dernier est un truc super léger en comparaison de tout le reste.
Réinventer la roue pour pas grand chose sur des aspects déjà bien gérés nativement par serveurs et navigateurs et mal connus par les développeurs (il y a tellement d'aspects...), je trouve pas ça du temps utilement passé pour un débutant. "On" a déjà résolu ce genre de problème, il y a des outils et des techniques pour ça. AJAX ça devient (très) pertinent pour de grosses applications web genre GMail, GDrive ou autre webapp imitant sur le web ce qu'on fai(sai)t dans un logiciel de bureau.
Mieux vaut apprendre à configurer son serveur (cherche "performance web" par exemple et des outils comme Google Page Speed, concaténer/minifier ses ressources, etc) et avant ça connaître comment fonctionne un navigateur (au-delà du basique "on tape une adresse, la page s'affiche", le reste est... vaste
)
Conférences Paris-Web sur le sujet :
Performance Web côté client par N. Sullivan et É. Daspet, à l'époque en 2008 chez Yahoo!.
Un navigateur, comment ça marche ? par Anthony Ricaud de chez Mozilla (pour l'anecdote s'il y a des mots que tu comprends pas, imagine l'interprète LSF à côté de lui en train de traduire les 50 mots de jargon qu'Anthony est bien obligé d'employer pour décrire les choses
)
Modifié par Felipe (15 Dec 2013 - 10:31)