Page 1 sur 2

strategie pour soulager le serveur

Posté : 28 juil. 2008, 11:58
par Gico
Bonjour
J'ai un menu dynamique qui est sur toutes mes pages, je l'ai mis en include. Ce qui signifie que le serveur est sollicité à chaque affichage. Je me demandais, vu que ce menu change rarement, s'il n'y avait pas moyen de transformer ce menu en "dur", en code html, à la demande, de façon à ne pas solliciter le serveur à chaque demande de page, eventuellment s'il était stocké client se serait encore mieux.
Merci

Posté : 28 juil. 2008, 12:45
par Patriboom
Tu peux morceler ta page en différents <frame>. Seule la page changeant est appelée et solicite le serveur.

Posté : 28 juil. 2008, 13:45
par Gico
merci pour ta réponse, je suis pas un fan des frames

Posté : 28 juil. 2008, 14:14
par agité
J'ai un peu le même soucis que toi sachant que je dois gérer un menu qui change a chaque utilisateur selon son rang.

Jusque la je faisais rappel a chaque fois au menu, puis aux requetes de ce menu mais avec Yslow de yahoo je me suis rendu compte que rien que pour la page d'accueil je faisais au moins 15 ou 20 requetes differentes pour l'ensemble de la page ce qui alourdis largement toute mes pages.

Sachant que je n'utilise pas non plus de frame pour les sites que je fais, uniquement les pseudo frame pour les pages gerant un contenu identique type musique.php puis dans les includes (musique_add, musique_edit).

Posté : 28 juil. 2008, 16:13
par Patriboom
Si tu n'as que de petites informations à conserver:
chez l'utilisateur: $_COOKIES
sur le serveur: $_SESSION

parfois on peut faire des merveilles avec quelques points de repères.

Posté : 28 juil. 2008, 17:31
par agité
En fait j'utilise les $_SESSION pour stocker les droits d'accès a certaines page puis je test avec un true false dans ma class donc sans requete au server juste une pour afficher une liste qui est stocker en BDD.

Posté : 28 juil. 2008, 21:27
par Gico
Mon menu est assez lourd, trop pour être stocké en cookie, je me demande si la soluce c'est pas de generer un include php avec le code html " en dur " à l'intérieur, pour limiter les requêtes mysql. Ca doit être possible d'automatiser ma tache

Posté : 28 juil. 2008, 21:56
par Patriboom
Tu pourrais, si tu vas dans le sens que tu viens de décrire, avoir 3, 4, 5 fichiers menu que tu appelles par le PHP qui aura antérieurement analysé lequel doit être appelé.

Par exemple: tu as les fichiers contact.htm, historique.htm, produits.htm

Lorsque le visiteur clique sur le taquet produits, PHP appelle (include) produits.htm. Alors: un seul calcul.

Posté : 28 juil. 2008, 22:59
par Gico
Merci, je vais essayer de mettre en place quelque chose comme ça

Posté : 29 juil. 2008, 00:17
par AB
Si j'ai bien compris tu faisais une requête mysql pour afficher un menu dynamique ?

Effectivement si c'est le cas, faire une requête uniquement pour cela n'est pas très optimisé et si tu veux soulager un peu le serveur Patriboom t'as donné une solution.

Y'a moulte variantes par exemple tu pourrais aussi enregistrer ton menu dans un tableau php (souvent utilisé). Niveau performances, puisque de toutes façons tu fais appel à php ce n'est pas l'interprétation d'un tableau de quelques lignes (ou dizaines de lignes) qui ralentira le serveur.

Posté : 29 juil. 2008, 01:01
par Gico
un tableau php, stocké ou ?

Posté : 29 juil. 2008, 01:12
par hakazizi
ce que je fait sur mes site trois fichier
un avec tous le haut du site et les balise metat qui ne bouge pas
un avec le contenu du site
et un avec le bas du site qui ne bouge pas
je n'utilse le dynamisme uniquement pour le contenu.
toutes mes url son reel ou coresponde a une page precise
je suis contre.
les
index.php?page=nompage
sur mon site se serais nompage.php et rien d'autre et toujours le principe des 3 fichiers
chacun voi midi a sa porte ...
comme on dit

Posté : 29 juil. 2008, 01:17
par AB
un tableau php, stocké ou ?
Bah dans un fichier php que tu pourrais nommer menus.php et qui serait inclus dans chacune de tes pages. Dans ce même fichier tu pourrais faire également le traitement php qui affchera la bonne ligne du tableau en fonction de la page appelante.

L'avantage par rapport à la méthode précédente c'est que tu centralises toutes tes informations dans un seul fichier donc les modifs à venir seront facilitées.

Posté : 29 juil. 2008, 10:07
par Gico
Le menu est identique dans toutes les pages, il est juste dynamique, car je veux pouvoir ajouter ou retirer des rubriques en admin. En fait c'est un peux plus compliqué que ça, le menu est fait de données html récupérées par un fichier flash ça me donne des choses comme ça ;

Code : Tout sélectionner

<?php do { ?> <div><a href='../guide-des-visites-Bali.php#<?php echo $row_mn_visites['IDtypeVisite']; ?>'><?php echo SuppAccents(utf8_decode($row_mn_visites['typeVisite'])); ?></a></div> <?php } while ($row_mn_visites = mysql_fetch_assoc($mn_visites)); ?>
Il y a aussi du formatage pour de l'url rewriting, mais au finish j'ai des listes de liens dans des div. Il faudrait donc que "j'imprime ça en dur" dans un fichier ( php?) pour éviter de relancer les requête a chaque ouverture de page, et ça, si c'est possible, je sais pas faire.

Posté : 29 juil. 2008, 14:12
par Patriboom
À lire les messages affichés, la question se complexifie de jour en jour.
Avant de soumettre d'autres pistes, j'aimerais avoir la vue d'ensemble. Y a-t-il d'autres contraintes? D'autres paramètres? Autre chose que nous aurions dû savoir depuis le début pour mieux t'aider?