[spip-dev] ! balise #INCLURE

une balise #INCLURE (ou #INCLUDE) pour realiser des inclusions statiques

(au calcul, pas au service de la page)

syntaxe identique a <INCLURE..>
[(#INCLURE{fond=sommaire}{lang})] ou comme les autres balises :
[(#INCLURE{fond=sommaire,lang})]
ce qui permet la syntaxe allegee :
#INCLURE{fond=sommaire,lang}

Consequences :
- performance : l'inclure realise ainsi produit un contenu statique (tous les sous-inclure du squelette inclus sont egalement mis a plat statiquement)
- dynamique : la consequence est que la page n'est mise a jour qu'en fonction de son cache, sans tenir compte des caches des fichiers inclus
- fonctionnel : la sortie etant du contenu statique, il est possible de lui appliquer des filtres :
[(#INCLURE{fond=sommaire}{lang}|version_texte)]

Modified:
  spip/ecrire/public/assembler.php
  spip/ecrire/public/balises.php

Details: http://trac.rezo.net/trac/spip/changeset/7017

cedric a écrit :

une balise #INCLURE (ou #INCLUDE) pour realiser des inclusions statiques

(au calcul, pas au service de la page)

syntaxe identique a <INCLURE..>
[(#INCLURE{fond=sommaire}{lang})] ou comme les autres balises :
[(#INCLURE{fond=sommaire,lang})]
ce qui permet la syntaxe allegee :
#INCLURE{fond=sommaire,lang}

Consequences :
[...]
- dynamique : la consequence est que la page n'est mise a jour qu'en fonction de son cache, sans tenir compte des caches des fichiers inclus

Bonjour

Est ce que l'on à aussi ça avec <INCLURE..> ?
Par exemple :
J'ai un squelette sommaire.html avec un valeur de #CACHE à 15 jours;
et si dedans j'ai un <INCLURE..> spécifiant dans le squelette inclus un cache de 2h.

Est ce que si j'affiche la page sommaire toutes les 3 heures j'aurais la partie incluse qui aura été recalculée? (ou alors il faudra que j'attende 15 jours?)
Quel est le fonctionnement prévu dans Spip?

Peut-être que cette question devrait être posée dans la liste spip-users (si oui, vous me le dites et je le fais)

A bientôt
Grégoire

Gregoire a écrit :

cedric a écrit :

une balise #INCLURE (ou #INCLUDE) pour realiser des inclusions statiques

(au calcul, pas au service de la page)

syntaxe identique a <INCLURE..>
[(#INCLURE{fond=sommaire}{lang})] ou comme les autres balises :
[(#INCLURE{fond=sommaire,lang})]
ce qui permet la syntaxe allegee :
#INCLURE{fond=sommaire,lang}

Consequences :
[...]
- dynamique : la consequence est que la page n'est mise a jour qu'en fonction de son cache, sans tenir compte des caches des fichiers inclus
   
Bonjour

Est ce que l'on à aussi ça avec <INCLURE..> ?
Par exemple :
J'ai un squelette sommaire.html avec un valeur de #CACHE à 15 jours;
et si dedans j'ai un <INCLURE..> spécifiant dans le squelette inclus un cache de 2h.

Est ce que si j'affiche la page sommaire toutes les 3 heures j'aurais la partie incluse qui aura été recalculée? (ou alors il faudra que j'attende 15 jours?)
Quel est le fonctionnement prévu dans Spip?

OUI, <INCLURE ...> provoque une inclusion au niveau du squelette calculé, donc a chaque service de la page.
MAIS, depuis SPIP 1.9, les pages sont envoyées avec un header pour que les navigateurs gèrent la mise en cache. Le delai envoyé au navigateur correspond à celui du squelette principal.
DONC, quelqu'un qui charge la page ne la verra rafraichie avec le bout inclus que 15 jours après car son navigateur ne la mettra pas a jour. Mais quelqu'un qui arrive sans cache verra bien la page a jour.
Pour remedier a cela lorsque c'est critique il faut envoyer un header en tete de squelette avec #HTTP_HEADER pour specifier que les navigateurs ne doivent pas mettre la page en cache et la mettre a jour a chaque fois (ou avec un delai de cache plus faible eventuellement)

Par rapport à cela #INCLURE provoque une inclusion lors du calcul du squelette principal, et donc qui ne sera effectivement remise a jour que 15 jours plus tard.

Cedric

cedric.morin a écrit :

Gregoire a écrit :
[...]

J'ai un squelette sommaire.html avec un valeur de #CACHE à 15 jours;
et si dedans j'ai un <INCLURE..> spécifiant dans le squelette inclus un cache de 2h.

Est ce que si j'affiche la page sommaire toutes les 3 heures j'aurais la partie incluse qui aura été recalculée? (ou alors il faudra que j'attende 15 jours?)
Quel est le fonctionnement prévu dans Spip?

OUI, <INCLURE ...> provoque une inclusion au niveau du squelette calculé, donc a chaque service de la page.
MAIS, depuis SPIP 1.9, les pages sont envoyées avec un header pour que les navigateurs gèrent la mise en cache. Le delai envoyé au navigateur correspond à celui du squelette principal.
DONC, quelqu'un qui charge la page ne la verra rafraichie avec le bout inclus que 15 jours après car son navigateur ne la mettra pas a jour. Mais quelqu'un qui arrive sans cache verra bien la page a jour.
Pour remedier a cela lorsque c'est critique il faut envoyer un header en tete de squelette avec #HTTP_HEADER pour specifier que les navigateurs ne doivent pas mettre la page en cache et la mettre a jour a chaque fois (ou avec un delai de cache plus faible eventuellement)

Par rapport à cela #INCLURE provoque une inclusion lors du calcul du squelette principal, et donc qui ne sera effectivement remise a jour que 15 jours plus tard.

Cedric

Merci, c'est vraiment clair ainsi.

Grégoire