cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Verdin <ver...@agrocampus-rennes.fr>
Subject Re: scripts XSLT et le cache
Date Thu, 05 Jan 2006 08:27:22 GMT
Bonjour,

>> Hé ! Hé ! C'est probable en effet. ;-)
>> Malheureusement, ç'était un peu moins gadget : je cherche à 
>> enregistrer des données de session, et de les intégrer dans des 
>> fichiers identifiés par la date, pour éviter les monolithes.
>
>
> "monolithes" ? Euh... qu'est-ce que ça désigne ?

Je veux éviter d'avoir de grosses pierres de plusieurs dizaines de 
tonnes. Ça attire les druides et après on ne peut plus s'en 
débarasser... ;-)      Désolé...
Je veux éviter d'avoir des enregistrements successifs sans autres 
information que leur contenu. Je veux pouvoir les identifier au moins 
par leur date et donc les présenter différemment.
Dans ce cadre, "monolithe" désignait - maladroitement, j'en conviens - 
un gros fichier où tous les enregistrements s'enchainaient sans identité 
propre. En fait, je peux très bien avoir un seul fichier, du moment qu'à 
l'intérieur, chaque enregistrement est accompagné d'une date.

>
>> Alors j'utilise le code suivant dans un XSL :
>>
>>  <xsl:template match="/">
>>    <racine xmlns:source="http://apache.org/cocoon/source/1.0">
>>      <source:insert>
>>        
>> <source:source>context://documents/historiqueRequetes/<xsl:value-of 
>> select="substring-before(date:date(),'+')"/>session.xml</source:source>
>>        <source:fragment>
>>          <session:getxml context="ontoRequete" path="/"/>
>>        </source:fragment>
>>        <source:path>/racine</source:path>
>>      </source:insert>
>>    </racine>
>>  </xsl:template>
>
>
> Argh, le fameux SourceWritingTransformer...

Ben c'est pas si mal pour stocker quelques informations qui n'ont pas 
forcément besoin d'être organisées en base de données.
Pour le moment en tout cas.
Qu'est-ce qu'il a de mal, ce pauvre transformer ?

>
>> Ceci est utilisé dans ce pipeline :
>>
>>      <map:match pattern="sauverRequete">
>>        <map:generate src="fragmentSession.xml"/> <!-- Un fichier 
>> pipeau -->
>>        <map:transform 
>> src="context://documents/resources/enregistreurSession.xsl"/> <!-- 
>> mon XSLT -->
>>        <map:transform type="session"/>
>>        <map:transform type="write-source"/>
>>        <map:serialize type="xml"/>
>>      </map:match>
>>     Et paf ! on insère dans un fichier XML les infos de session. Si 
>> le fichier n'existe pas, on le crée. Et la date est sensée changer 
>> tous les jours.
>
>
> Ok. Vu que c'est un pipeline dont le résultat va toujours changer, tu 
> peux le mettre dans un <map:pipeline type="non-caching">.

Ah ben c'est vrai ça.
Je vais essayer !

>
> Tu peux aussi passer la date en paramètre de la xsl avec un 
> <map:parameter name="date" value="{date:yyyyMMdd}"/>

Argh... Je ne le connaissais pas ce paramètre-là...
Sinon j'aurais évité les expressions XSLT exotiques et pas encore bien 
reconnues...

>> Une solution sera peut-être de vider le cache tous les jours à 0h01...
>> Cela dit, il existe peut-être une autre solution pour enregistrer les 
>> sessions.
>
>
> Question bête : à quoi ça sert d'enregistrer les sessions ?

Je réalise une site de test. En bref : on cherche du vocabulaire 
susceptible d'être associé à celui utilisé par l'utilisateur dans sa 
requête. Et l'objectif du site est de savoir si les solutions qu'on a 
adoptées apportent un résultat satisfaisant.
Donc j'enregistre la requête, les termes renvoyés, ceux que 
l'utilisateur élimine, bref un peu tout ce qu'il fait au cours de sa 
visite pour voir ce qui va et ce qui ne va pas.
Tous les gens qui y participent sont prévenus qu'il s'agit d'un site de 
test, bien sûr.
Et comme une partie du système n'est pas dans cocoon, mais dans un autre 
servlet, on utilise des cookies pour transférer les informations de l'un 
à l'autre. La solution la plus simple m'a semblé être d'enregistrer les 
cookies.

David

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message