cancel
Showing results for 
Search instead for 
Did you mean: 

Rafraîchir le JS client

dranakan
Champ on-the-rise
Champ on-the-rise
Hello,

Comment puis-je rafraîchir automatiquement le code Javascript côté client ? (obliger les navigateurs à faire CTRL+F5)
J'ai par exemple fait des modifs dans  tomcat/webapps/share/components/dashlets/my-tasks.js

http://csabee.com/ecm/?p=47

Merci bien.
7 REPLIES 7

sibe
Champ on-the-rise
Champ on-the-rise
L'idéal c'est de compiler ton fichier via ant par exemple pour créer le fichier -min.js en utilisant les librairies de yui-compressor … car le fichier utilisé en réalité coté client pour ton exemple est plutôt tomcat/webapps/share/components/dashlet/my-tasks-min.js.

A titre d'exemple sur ton build.xml il faudra ajouter les lignes suivantes :

<path id="yuicompressor.classpath">
        <fileset dir="lib">
            <include name="yuicompressor-2.4.2.jar" />
            <include name="yui-compressor-ant-task-0.5.jar" />
        </fileset>
    </path>
<taskdef name="yuicompress" classname="net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask">
        <classpath>
            <path refid="yuicompressor.classpath" />
        </classpath>
    </taskdef>
<path id="ml-ant-http.classpath">
        <fileset dir="lib">
            <include name="ml-ant-http-1.1.1.jar" />
        </fileset>
    </path>

  <!– Minify JS –>
        <yuicompress fromdir="${res.dir}" todir="${build.jar.dir}/META-INF" excludes="**/*-min.js" warn="${yuicompress.warn}">
            <include name="**/*.js" />
        </yuicompress>

Ceci est juste un exemple.

dranakan
Champ on-the-rise
Champ on-the-rise
Merci mmly.

J'utilise cette méthode (avec Ant). Mon problème est que ce script (le minifié si <client-debug>false</client-debug>) n'est pas forcément à jour sur le poste client après une modification du script.
Existe-t'il un moyen pour obliger les navigateurs à recharger tous les js ?

sibe
Champ on-the-rise
Champ on-the-rise
ça fait quoi en vidant le cache du navigateur ?

dranakan
Champ on-the-rise
Champ on-the-rise
ça fait quoi en vidant le cache du navigateur ?
Cela va aussi permettre de recharger la dernière version des JS dès l'accès à Alfresco…

Mon but est d'avoir un système automatique pour tous les utilisateurs.

rguinot
Confirmed Champ
Confirmed Champ
A savoir : ceci a été amélioré, et sera à priori présent dans les versions 4.2+ (cf http://blogs.alfresco.com/wp/ddraper/2012/03/06/checksum-dependencies-in-surf/). En attendant, une fois que vous êtes en <mode>production, vous pouvez en effet nécessiter de vider le cache du navigateur.

dranakan
Champ on-the-rise
Champ on-the-rise
Merci bien.
En attendant je vais demander aux utilisateurs de faire CTRL+F5…

dranakan
Champ on-the-rise
Champ on-the-rise
On peut aussi mettre un "?numéro" dans le fichier appelant le javascript pour forcer une mise à jour (si le numéro est plus grand)

par exemple depuis un ftl qui appel un javascript :



<script type="text/javascript" src="${url.context}/js/yui-custom-min.js?1"></script>

et après mettre 2,3 pour nouvelles versions…

Et redémarrer Share