Dotclear

Ticket #377 (closed enhancement: fixed)

Opened 17 years ago

Last modified 17 years ago

Support de max-age dans http::cache

Reported by: sacha Owned by: olivier
Priority: normal Milestone: 2.1
Component: module:core Version: 2.0
Severity: normal Keywords:
Cc:

Description

Il serait intéressant de mettre en place le support de max-age dans Clearbricks, cela permettra d'éviter bon nombre de requêtes inutiles sur les fichiers statiques (images, CSS, JS, SWF) issues de load_plugin_file.php.

J'attache un patch pour lib.http.php, autorisant le développeur à spécifier une valeur pour max-age ainsi qu'un patch pour load_plugin_file.php qui fait usage de cette fonctionnalité en se basant sur la constante DC_CACHE_MAX_AGE à définir dans inc/config.php.

Combiné à une configuration Apache semblable, cela permet d'éviter plus de 60 requêtes inutiles client/serveur sur le tableau de bord, 80 sur la page "Nouveau billet", au moins une vingtaine sur la partie publique : si les fichiers sont en cache, tout se résume en une seule requête.

La navigation est bien plus rapide pour le visiteur, la charge du serveur est moindre et les logs Apache sont plus clairs.

Pour profiter de cette optimisation, il suffit d'ajouter 3 lignes dans inc/config.php :



// Static files max-age Cache-Control field
define('DC_CACHE_MAX_AGE',3600);

J'ai mis en place la chose en test sur mon  blog personnel, et la navigation est vraiment plus rapide.

Attachments

lib.http.diff Download (1.0 KB) - added by sacha 17 years ago.
Patch Clearbricks
load_plugin_file.diff Download (531 bytes) - added by sacha 17 years ago.
Patch Dotclear

Change History

Changed 17 years ago by sacha

Patch Clearbricks

Changed 17 years ago by sacha

Patch Dotclear

comment:1 follow-up: ↓ 2 Changed 17 years ago by olivier

  • Status changed from new to assigned

Ça passera avec une propriété statique de la classe plutôt qu'une entrée en conf.

comment:2 in reply to: ↑ 1 Changed 17 years ago by sacha

Replying to olivier:

Ça passera avec une propriété statique de la classe plutôt qu'une entrée en conf.

L'idée c'est quand même de laisser max-age à 0 pour le contenu dynamique.

comment:3 Changed 17 years ago by olivier

Par contre un max-age de une heure, c'est non :)

comment:4 Changed 17 years ago by olivier

  • Status changed from assigned to closed
  • Resolution set to fixed

(In [2243]) Added 300 seconds HTPP max-age in load_plugin_file. Closes #377.

comment:5 Changed 17 years ago by sacha

5 min ! J'ai vu pas mal d'exemples où les auteurs mettaient des mois entiers à max-age, je croyais faire court avec une heure :)

comment:6 Changed 17 years ago by olivier

Bah le max age semble pas rafraîchir les changements. Je vais tester un peu plus.

comment:7 Changed 17 years ago by sacha

Chez moi ça marche comme sur des roulettes, le navigateur utilise uniquement le cache tant que max-age n'est pas perimé. Et dès qu'il est périmé, il envoie If-Modified-Since et le serveur retourne 304 Not Modified, et c'est reparti jusqu'à la nouvelle péremption de max-age. C'est parfait :)

Note: See TracTickets for help on using tickets.

Sites map