par
Henri » 10 juil. 2006, 12:06
Si tes textes changent peu, pourquoi ne pas générer le code HTML final ?
je m'explique : tu as actuellement quelque chose comme ça dans tes pages publiques (en probablement un peu plus compliqué)
<?php
$sql = "select titre, resume from texte where id=$d";
?>
...
puis ton affichage
<h1><?php echo $titre; ?><h1>
<?php echo $resume; ?>
Ce que tu peux faire, c'est dans l'administration des textes, lorsque tu fais un insert ou un update d'un texte, tu génères le code html correspondant à l'affichage :
$fh = fopen ("page".$id.".html", "w");
fwrite ($fh, "<h1>.$titre.</h1>\n");
fwrite ($fh, $resume."\n");
fclose($fh);
et ensuite dans ta page d'affichage, tu n'as plus qu'à faire un
include ("page".$id.".html");
Il n'y a plus de requête, il n'y a plus d'affichage de variables dynamiques, ... : juste la lecture d'un fichier et donc son affichage.
Maintenant, si tu charges de très nombreux textes que tu n'affiches pas, ce qui ralentit le site, ce n'est pas tellement la requête SQL, c'est leur transmission sur la ligne.
J'ai eu un cas similaire avec un affichage de listes déroulantes chaînées (du style, je choisis la marque dans une première liste, la deuxième liste affiche les modèles de la marque, puis ensuite tu choisis les motorisations des modèles, ...). Ce sont des javascript qui marchent très bien, mais qui ont besoin d'avoir dans chaque page où on les utilisent toutes les marques, tous les modèles, toutes les motorisations, toutes les références, ... bref : de très très longues secondes pour charger ces pages quand il y a des centaines de marques et des dizaines de milliers de modèles et références.
Nous avons inclus le script dans un frameset : une frame avec le site proprement dit, et une frame de 1 pixel de large.
Lorsque l'utilisateur arrive sur le site, cette frame "presque cachée" contient du php qui va générer les variables javascript de tous les éléments dont on a besoin pour le site. Cela prend un peu de temps, mais c'est une fois uniquement. Et comme ce sont des données qui changent rarement, le fichier est généré à chaque insert/update/delete de données, comme expliquer plus haut.
Lorsque l'utilisateur se promène sur le site, cette frame "cachée" n'est pas rechargée et contient toujours ces variables. Il suffit que les scripts du site qui ont besoin des marques, modèles, ...fassent référence aux variables de la frame.
Voila deux idées : à toi de jouer ...