J'ai un site en PHP et une certaine page nécessite pas mal de requêtes
SQL. Dès qu'on affiche la page, les requêtes sont donc lancées afin de
créer la page.
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est
générée toutes les X mins (ou un système de cache ?). Puis entre temps,
elle est static afin d'éviter des accès à MySQL dès que la page est
demandée.
Au pire, je passe par un script Perl + Cron mais côté maintenance, ca ne
va pas être la joix...
il serait plus sein de générer une page HTML à chaque fois que les données sont modifiées. Comme ça la page appelée n'est plus un .php mais un .html et il n'y a plus de requetes superflues. C'est une methode tres efficace sauf si les données changent toutes les 4 secondes ;)
Kawai ^_^
Bonjour.
J'ai un site en PHP et une certaine page nécessite pas mal de requêtes SQL. Dès qu'on affiche la page, les requêtes sont donc lancées afin de créer la page.
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est générée toutes les X mins (ou un système de cache ?). Puis entre temps, elle est static afin d'éviter des accès à MySQL dès que la page est demandée.
Salut,
pourquoi générer toutes les X minutes ?
il serait plus sein de générer une page HTML à chaque fois que les
données sont modifiées. Comme ça la page appelée n'est plus un .php mais
un .html et il n'y a plus de requetes superflues.
C'est une methode tres efficace sauf si les données changent toutes les
4 secondes ;)
Kawai ^_^
Bonjour.
J'ai un site en PHP et une certaine page nécessite pas mal de requêtes
SQL. Dès qu'on affiche la page, les requêtes sont donc lancées afin de
créer la page.
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est
générée toutes les X mins (ou un système de cache ?). Puis entre temps,
elle est static afin d'éviter des accès à MySQL dès que la page est
demandée.
il serait plus sein de générer une page HTML à chaque fois que les données sont modifiées. Comme ça la page appelée n'est plus un .php mais un .html et il n'y a plus de requetes superflues. C'est une methode tres efficace sauf si les données changent toutes les 4 secondes ;)
Kawai ^_^
Bonjour.
J'ai un site en PHP et une certaine page nécessite pas mal de requêtes SQL. Dès qu'on affiche la page, les requêtes sont donc lancées afin de créer la page.
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est générée toutes les X mins (ou un système de cache ?). Puis entre temps, elle est static afin d'éviter des accès à MySQL dès que la page est demandée.
Thibaut Allender
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est générée toutes les X mins (ou un système de cache ?). Puis entre temps, elle est static afin d'éviter des accès à MySQL dès que la page est demandée.
le cache est une bonne idee ca peut etre déclenché par le premier visiteur qui voit la page au moins où elle a besoin d'être mise à jour
au lieu de délivrer la page directement au client, il faut rediriger la sortie vers une fichier, puis délivrer ce fichier au client ensuite, reste à trouver une méthode pour déterminer si on doit générer la page, ou utiliser la version mise en cache
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est
générée toutes les X mins (ou un système de cache ?). Puis entre temps,
elle est static afin d'éviter des accès à MySQL dès que la page est
demandée.
le cache est une bonne idee
ca peut etre déclenché par le premier visiteur qui voit la page au moins
où elle a besoin d'être mise à jour
au lieu de délivrer la page directement au client, il faut rediriger la
sortie vers une fichier, puis délivrer ce fichier au client
ensuite, reste à trouver une méthode pour déterminer si on doit générer
la page, ou utiliser la version mise en cache
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est générée toutes les X mins (ou un système de cache ?). Puis entre temps, elle est static afin d'éviter des accès à MySQL dès que la page est demandée.
le cache est une bonne idee ca peut etre déclenché par le premier visiteur qui voit la page au moins où elle a besoin d'être mise à jour
au lieu de délivrer la page directement au client, il faut rediriger la sortie vers une fichier, puis délivrer ce fichier au client ensuite, reste à trouver une méthode pour déterminer si on doit générer la page, ou utiliser la version mise en cache
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est générée toutes les X mins (ou un système de cache ?).
C'est effectivement un système de cache qu'il faut.
Delf
Thibaut Allender wrote:
le cache est une bonne idee ca peut etre déclenché par le premier visiteur qui voit la page au moins où elle a besoin d'être mise à jour
Vais voir si je trouve qq chose sur le Net. Merci.
au lieu de délivrer la page directement au client, il faut rediriger la sortie vers une fichier, puis délivrer ce fichier au client ensuite, reste à trouver une méthode pour déterminer si on doit générer la page, ou utiliser la version mise en cache
Ca revient au meme qu'un script Perl... vu qu'il me faudra un timer. Ce qui me gene, c'est de générer toute la page... ou alors je mets des balises de comments dans la page php servant de modèle et le script écrit entre...
-- Delf
Thibaut Allender wrote:
le cache est une bonne idee
ca peut etre déclenché par le premier visiteur qui voit la page au moins
où elle a besoin d'être mise à jour
Vais voir si je trouve qq chose sur le Net. Merci.
au lieu de délivrer la page directement au client, il faut rediriger la
sortie vers une fichier, puis délivrer ce fichier au client
ensuite, reste à trouver une méthode pour déterminer si on doit générer
la page, ou utiliser la version mise en cache
Ca revient au meme qu'un script Perl... vu qu'il me faudra un timer. Ce
qui me gene, c'est de générer toute la page... ou alors je mets des
balises de comments dans la page php servant de modèle et le script
écrit entre...
le cache est une bonne idee ca peut etre déclenché par le premier visiteur qui voit la page au moins où elle a besoin d'être mise à jour
Vais voir si je trouve qq chose sur le Net. Merci.
au lieu de délivrer la page directement au client, il faut rediriger la sortie vers une fichier, puis délivrer ce fichier au client ensuite, reste à trouver une méthode pour déterminer si on doit générer la page, ou utiliser la version mise en cache
Ca revient au meme qu'un script Perl... vu qu'il me faudra un timer. Ce qui me gene, c'est de générer toute la page... ou alors je mets des balises de comments dans la page php servant de modèle et le script écrit entre...
-- Delf
Delf
Kawai wrote:
il serait plus sein de générer une page HTML à chaque fois que les données sont modifiées. Comme ça la page appelée n'est plus un .php mais un .html et il n'y a plus de requetes superflues. C'est une methode tres efficace sauf si les données changent toutes les 4 secondes ;)
Je ne sais pas quand les données changent...
-- Delf
Kawai wrote:
il serait plus sein de générer une page HTML à chaque fois que les
données sont modifiées. Comme ça la page appelée n'est plus un .php mais
un .html et il n'y a plus de requetes superflues.
C'est une methode tres efficace sauf si les données changent toutes les
4 secondes ;)
il serait plus sein de générer une page HTML à chaque fois que les données sont modifiées. Comme ça la page appelée n'est plus un .php mais un .html et il n'y a plus de requetes superflues. C'est une methode tres efficace sauf si les données changent toutes les 4 secondes ;)
Je ne sais pas quand les données changent...
-- Delf
Thibaut Allender
au lieu de délivrer la page directement au client, il faut rediriger la sortie vers une fichier, puis délivrer ce fichier au client ensuite, reste à trouver une méthode pour déterminer si on doit générer la page, ou utiliser la version mise en cache
Ca revient au meme qu'un script Perl... vu qu'il me faudra un timer.
non, pourquoi un timer ? on peut faire d'autres tests (par exemple
tester à quelle date a été généré le fichier, si plus ancien que X heures, on regenere)
Ce qui me gene, c'est de générer toute la page... ou alors je mets des balises de comments dans la page php servant de modèle et le script écrit entre...
tu peux aussi generer des portions et faire un include
if (test) { // script qui genere l'include; } include(include_généré);
au lieu de délivrer la page directement au client, il faut
rediriger la sortie vers une fichier, puis délivrer ce fichier au
client ensuite, reste à trouver une méthode pour déterminer si on
doit générer la page, ou utiliser la version mise en cache
Ca revient au meme qu'un script Perl... vu qu'il me faudra un timer.
non, pourquoi un timer ? on peut faire d'autres tests (par exemple
tester à quelle date a été généré le fichier, si plus ancien que X
heures, on regenere)
Ce qui me gene, c'est de générer toute la page... ou alors je mets
des balises de comments dans la page php servant de modèle et le
script écrit entre...
tu peux aussi generer des portions et faire un include
if (test) {
// script qui genere l'include;
}
include(include_généré);
au lieu de délivrer la page directement au client, il faut rediriger la sortie vers une fichier, puis délivrer ce fichier au client ensuite, reste à trouver une méthode pour déterminer si on doit générer la page, ou utiliser la version mise en cache
Ca revient au meme qu'un script Perl... vu qu'il me faudra un timer.
non, pourquoi un timer ? on peut faire d'autres tests (par exemple
tester à quelle date a été généré le fichier, si plus ancien que X heures, on regenere)
Ce qui me gene, c'est de générer toute la page... ou alors je mets des balises de comments dans la page php servant de modèle et le script écrit entre...
tu peux aussi generer des portions et faire un include
if (test) { // script qui genere l'include; } include(include_généré);
J'ai un site en PHP et une certaine page nécessite pas mal de requêtes SQL. Dès qu'on affiche la page, les requêtes sont donc lancées afin de créer la page.
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est générée toutes les X mins (ou un système de cache ?). Puis entre temps, elle est static afin d'éviter des accès à MySQL dès que la page est demandée.
En dehors des outils de cache, tu peux programmer toi-même la bascule statique/dynamique, par exemple :
$fichier_php = $_SERVER['SCRIPT_FILENAME']; $fichier_html = preg_replace('`.php.?$`', '.html', $fichier_php); $cache = ($fichier_html <> $fichier_php); if ($cache) { if(file_exists($fichier_html) and (time() - filemtime($fichier_html) < 4*60)) { # affichage de la page cache readfile($fichier_html); exit; } ob_start('sauve_html'); }
...
if($cache) ob_end_flush();
function sauve_html($buffer) { global $fichier_html; if($f = fopen($fichier_html, 'wb')) { fwrite($f, $buffer); fclose($f); } return $buffer; }
non testé.
eça -- P'tit Marcel
Delf wrote:
J'ai un site en PHP et une certaine page nécessite pas mal de requêtes
SQL. Dès qu'on affiche la page, les requêtes sont donc lancées afin de
créer la page.
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est
générée toutes les X mins (ou un système de cache ?). Puis entre temps,
elle est static afin d'éviter des accès à MySQL dès que la page est
demandée.
En dehors des outils de cache, tu peux programmer toi-même la bascule
statique/dynamique, par exemple :
$fichier_php = $_SERVER['SCRIPT_FILENAME'];
$fichier_html = preg_replace('`.php.?$`', '.html', $fichier_php);
$cache = ($fichier_html <> $fichier_php);
if ($cache) {
if(file_exists($fichier_html)
and (time() - filemtime($fichier_html) < 4*60)) {
# affichage de la page cache
readfile($fichier_html);
exit;
}
ob_start('sauve_html');
}
...
if($cache) ob_end_flush();
function sauve_html($buffer) {
global $fichier_html;
if($f = fopen($fichier_html, 'wb')) {
fwrite($f, $buffer);
fclose($f);
}
return $buffer;
}
J'ai un site en PHP et une certaine page nécessite pas mal de requêtes SQL. Dès qu'on affiche la page, les requêtes sont donc lancées afin de créer la page.
J'aimerais savoir s'il existait un mécanisme du genre: la page PHP est générée toutes les X mins (ou un système de cache ?). Puis entre temps, elle est static afin d'éviter des accès à MySQL dès que la page est demandée.
En dehors des outils de cache, tu peux programmer toi-même la bascule statique/dynamique, par exemple :
$fichier_php = $_SERVER['SCRIPT_FILENAME']; $fichier_html = preg_replace('`.php.?$`', '.html', $fichier_php); $cache = ($fichier_html <> $fichier_php); if ($cache) { if(file_exists($fichier_html) and (time() - filemtime($fichier_html) < 4*60)) { # affichage de la page cache readfile($fichier_html); exit; } ob_start('sauve_html'); }
...
if($cache) ob_end_flush();
function sauve_html($buffer) { global $fichier_html; if($f = fopen($fichier_html, 'wb')) { fwrite($f, $buffer); fclose($f); } return $buffer; }
non testé.
eça -- P'tit Marcel
Delf
Thibaut Allender wrote:
non, pourquoi un timer ? on peut faire d'autres tests (par exemple tester à quelle date a été généré le fichier, si plus ancien que X heures, on regenere)
En utilisant le terme 'timer', je voulais dire un système se basant sur une durée de temps.
tu peux aussi generer des portions et faire un include
if (test) { // script qui genere l'include; } include(include_généré);
C'est vrai. Je l'utilise assez fréquemment en plus et je n'y ai pas songé. Merci.
-- Delf
Thibaut Allender wrote:
non, pourquoi un timer ? on peut faire d'autres tests (par exemple
tester à quelle date a été généré le fichier, si plus ancien que X
heures, on regenere)
En utilisant le terme 'timer', je voulais dire un système se basant sur
une durée de temps.
tu peux aussi generer des portions et faire un include
if (test) {
// script qui genere l'include;
}
include(include_généré);
C'est vrai. Je l'utilise assez fréquemment en plus et je n'y ai pas
songé. Merci.
non, pourquoi un timer ? on peut faire d'autres tests (par exemple tester à quelle date a été généré le fichier, si plus ancien que X heures, on regenere)
En utilisant le terme 'timer', je voulais dire un système se basant sur une durée de temps.
tu peux aussi generer des portions et faire un include
if (test) { // script qui genere l'include; } include(include_généré);
C'est vrai. Je l'utilise assez fréquemment en plus et je n'y ai pas songé. Merci.
-- Delf
Marc
Kawai wrote:
il serait plus sein de générer une page HTML à chaque fois que les données sont modifiées. Comme ça la page appelée n'est plus un .php mais un .html et il n'y a plus de requetes superflues. C'est une methode tres efficace sauf si les données changent toutes les 4 secondes ;)
Je ne sais pas quand les données changent...
Les données changent quand ce ne sont plus les mêmes qu'avant ;-)
Tu as certainement moyen de détecter les delete, update, insert lancés par tes scripts et susceptibles d'entrainer une modification des donnees. Dans ce cas là, à chaque fois, tu regénères ta page statique. Pour être plus clair, à chaque fois qu'une requête de modification est lancé, tu inclus juste après un script chargé de la regénération de la page html
-- Marc
Kawai wrote:
il serait plus sein de générer une page HTML à chaque fois que les
données sont modifiées. Comme ça la page appelée n'est plus un .php
mais un .html et il n'y a plus de requetes superflues.
C'est une methode tres efficace sauf si les données changent toutes
les 4 secondes ;)
Je ne sais pas quand les données changent...
Les données changent quand ce ne sont plus les mêmes qu'avant ;-)
Tu as certainement moyen de détecter les delete, update, insert lancés
par tes scripts et susceptibles d'entrainer une modification des
donnees. Dans ce cas là, à chaque fois, tu regénères ta page statique.
Pour être plus clair, à chaque fois qu'une requête de modification est
lancé, tu inclus juste après un script chargé de la regénération de la
page html
il serait plus sein de générer une page HTML à chaque fois que les données sont modifiées. Comme ça la page appelée n'est plus un .php mais un .html et il n'y a plus de requetes superflues. C'est une methode tres efficace sauf si les données changent toutes les 4 secondes ;)
Je ne sais pas quand les données changent...
Les données changent quand ce ne sont plus les mêmes qu'avant ;-)
Tu as certainement moyen de détecter les delete, update, insert lancés par tes scripts et susceptibles d'entrainer une modification des donnees. Dans ce cas là, à chaque fois, tu regénères ta page statique. Pour être plus clair, à chaque fois qu'une requête de modification est lancé, tu inclus juste après un script chargé de la regénération de la page html
-- Marc
Ralph Nader 2008
On 23 Nov 2004 10:51:03 GMT, Marc wrote:
Tu as certainement moyen de détecter les delete, update, insert lancés par tes scripts et susceptibles d'entrainer une modification des donnees.
Un truc simple pour ça, c'est d'ajouter une colonne version qui sera incrémentée à chaque modification d'une table et permet ainsi facilement de déterminer si les données ont bougé depuis la dernière génération de la page.
Ralph.
On 23 Nov 2004 10:51:03 GMT, Marc <rien@domaine.com> wrote:
Tu as certainement moyen de détecter les delete, update, insert lancés
par tes scripts et susceptibles d'entrainer une modification des
donnees.
Un truc simple pour ça, c'est d'ajouter une colonne version qui sera
incrémentée à chaque modification d'une table et permet ainsi
facilement de déterminer si les données ont bougé depuis la dernière
génération de la page.
Tu as certainement moyen de détecter les delete, update, insert lancés par tes scripts et susceptibles d'entrainer une modification des donnees.
Un truc simple pour ça, c'est d'ajouter une colonne version qui sera incrémentée à chaque modification d'une table et permet ainsi facilement de déterminer si les données ont bougé depuis la dernière génération de la page.