Salut

Quand on charge une page de Wikipédia, l'entête et les menus entourant les informations ne sont pas rechargés à chaque fois, j'imagine; si non, ça fait une page qui est chargée par cents utilisateurs en même temps partout autour du monde et ça oblige le serveur à décrypter les codes au complet pour rendre le document.

De quel langage on se sert pour fractionner une page web dont une partie seulement devra être renouvelée à chaque changement de page? Je vous pris de bien vouloir répondre php ou css, s'il vous plais. Je ne veux pas avoir un autre langage à apprendre.
salut,
ça serait plutôt du chargement en Ajax dont tu parles. Les include et require se font en PHP juste pour inclure un fichier externe histoire de ne pas avoir à tout réécrire à chaque (surtout pour la maintenance).
Merci Zelalsan.

Pense-tu que je pourrais facilement remanier mon site avec Ajax ultérieurement, question de laisser de côté ce défit pour le moment?

Bonne journée!
Je viens de relire ton premier post, par contre je ne pense pas que Wikipedia utilise Ajax. Je crois même que je t'ai mal compris.
Si tu cherches à fractionner ton code pour pouvoir le réutiliser plus tard et ne pas avoir à le réécrire, c'est en PHP que ça se passe, avec include / include_once / require / require_once.
Maintenant si tu parles de ne charger qu'une partie de la page pour l'utilisateur (lors d'un clic par exemple), ça se fait en Ajax.
Je pense que c'est la solution PHP que tu cherches.
Non, Zelalsan; c'est d'Ajax dont j'ai besoin. Je veux éviter que 50 internautes forcent le serveur à recomposer des parties de page quand ils naviguent dans mon site.

Merci
Modérateur
Oliel a écrit :
Non, Zelalsan; c'est d'Ajax dont j'ai besoin. Je veux éviter que 50 internautes forcent le serveur à recomposer des parties de page quand ils naviguent dans mon site.

Merci

Pourquoi? ton serveur c'est un apple II, une machine à café ? Avoir peur de faire péter son serveur pour un include ce n'est pas très rationnel en 2014 (je prend un poil d'avance). Le supplément de charge est ridiculeusement faible, par rapport à la complexité de bonne gestion de l'ajax.

p.s: ce n'est pas rationnel en 2014, mais ça ne l'était déjà pas en 1995.
Modifié par kustolovic (14 Dec 2013 - 17:15)
Ok les experts, quand j'ai répondu à Zelalsan que c'était d'Ajax dont j'avais besoin, j'ai voulu dire que l'interprétation de ma question à laquelle il a donnée pour réponse Ajax était la bonne. C'était pour faire simple.

Quand à Wikipédia, c'est un exemple de ce que je veux obtenir comme effet.

Kustolovic, si vous vous y connaissez mieux que moi en informatique, épargnez moi vos sarcasmes et partagez votre expérience, merci. Smiley fache
Administrateur
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 Smiley smile
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 Smiley smile )

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 Smiley ravi )
Modifié par Felipe (15 Dec 2013 - 10:31)