Comment supprimer du cache un script .js ? [Résolu]

bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 12 nov. 2009 à 16:22 - Dernière réponse : Arto_8000 1051 Messages postés lundi 7 mars 2005Date d'inscription 13 juillet 2010 Dernière intervention
- 19 nov. 2009 à 18:43
Bonjour à tous !

J'ai dans une page HTML le code suivant :

<script language="javascript" src="MonScript.js"></script>


Question :

Comment détruire le fichier "MonScript.js" du cache ? (ou comment faire pour qu'il ne soit pas mis en cache)

Merci par avance.

BlueMan.
Afficher la suite 

Votre réponse

15 réponses

Meilleure réponse
Arto_8000 1051 Messages postés lundi 7 mars 2005Date d'inscription 13 juillet 2010 Dernière intervention - 19 nov. 2009 à 18:43
3
Merci
Si j'ai souligné indiqué, c'est que ce n'est qu'un indication que le navigateur peut faire ce qu'il veut avec.

Pour le code, j'ai moi-même testé de mon côté en local et les entêtes sont bels et bien ajoutées à la requête.

Merci Arto_8000 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de Arto_8000
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 12 nov. 2009 à 16:37
0
Merci
Bonjour,
la question c'est : pourquoi faire ?
on peut avoir besoin de relire un fichier
depuis le site et pas depuis le cache,
en général, "il suffit" d'ajouter une
valeur aléatoire derrière l'url,
style : xml.open('GET', 'fichier?'+new Date(), false);
peut-être voulez vous être sûr que la dernière
version du script soit prise en compte ?
si c'est le cas : document.write de la ligne
avec new Date() derrière l'url du .js, voire
charger ce script en dynamique.
Cordialement
Commenter la réponse de Bul3
bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 12 nov. 2009 à 18:56
0
Merci
Bonjour.

Je soushaite que le script soit chargé depuis le site web, mais qu'il n'en existe aucune copie dans le cache du navigateur. Merci.

BlueMan.
Commenter la réponse de bluemandfr
Arto_8000 1051 Messages postés lundi 7 mars 2005Date d'inscription 13 juillet 2010 Dernière intervention - 13 nov. 2009 à 05:32
0
Merci
Tu peux ajouter l'entête côté serveur suivante pour le fichier ne soit pas mis en cache :

Cache-Control: no-cache, must-revalidate

Pour ajouter des entêtes côté serveur la façon la plus simple est d'ajouter ceci dans le fichier .htaccess qui se trouve dans le dossier de ton fichier javascript :

<Files MonScript.js>
    Header append Cache-Control no-cache
    Header append Cache-Control must-revalidate
</Files>


Il faut juste t'assurer que le module mod_headers pour apache est activé.
Commenter la réponse de Arto_8000
bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 13 nov. 2009 à 17:19
0
Merci
Bonjour Open Source.
Merci de ton aide.

Questions subsidiaires :

- Tu parle d'unfichier .htaccess : quel est son nom ? Je n'arrive pas à créer une fichier .htaccess sans nom.

- As-tu uen autre méthode qui ferait la même chose, car j'ai pleins de scripts et leur nom chnage tout le temps : les déclarer est lourdingue..

Merci !

BlueMan.
Commenter la réponse de bluemandfr
bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 13 nov. 2009 à 17:37
0
Merci
Re-bonjour.

Je viens de trouver comment créer un fichier : .htaccess sous windows XP : par le notepad et lors de la sauvegarder, il faut mettre des guillements :

".htaccess"


Aussi, pous tous les fichiers j'ai mis :

<Files *.js>
    Header append Cache-Control no-cache
    Header append Cache-Control must-revalidate
</Files>


MAIS cela ne marche pas : le navigateur a toujours une copie dans le cache, et même si j'ai supprimé le fichier sur le serveur, si je tape dans la barre d'adresse du navigateur le chemin du fichier MonScript.js, alors il me propose de le télécharger, ce que je peux faire...

Comment résoudre ce problème ?

Merci !

BlueMan.
Commenter la réponse de bluemandfr
bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 13 nov. 2009 à 21:13
0
Merci
Re-bonjour.

Bin j'ai tout essayé avec .htaccess, et cela ne marche pas :

1) Le fichier Monscript.js est TOUJOUS dans le dossier fichies temporaires du navigateur.
2) Si je l'invoque manuellement par : http://www.monsite.com/MonScript.js : et bien, je peux le télécharger....

Que faire ?????

Merci !

BlueMan.
Commenter la réponse de bluemandfr
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 14 nov. 2009 à 09:39
0
Merci
et ??? pourquoi vouloir éviter de le mettre
dans le cache ???? si on peut 'forcer' à aller
le relire sur le site ?
Commenter la réponse de Bul3
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 14 nov. 2009 à 11:20
0
Merci
ce n'est pas une volonté de protection ?
tenter d'empêcher qu'on ne copie votre js ?
si c'est le cas : oubliez !!
il faut que vous compreniez une chose :
une page web va s'exécuter sur le micro du client,
pour ce faire tout son contenu ( html, javascript,
images... ) doit y être copié, dans, effectivement
ce qu'on appelle, le cache. aucun moyen de l'empêcher.
ah si.... ne pas faire de javascript, ce n'est
jamais obligatoire.
avec un simple Editeur de textes on peut
d'ailleurs probablement aller le lire sur
votre site ! non ?
Commenter la réponse de Bul3
Arto_8000 1051 Messages postés lundi 7 mars 2005Date d'inscription 13 juillet 2010 Dernière intervention - 14 nov. 2009 à 16:52
0
Merci
Un fichier .htaccess fonctionne avec un serveur Apache. Si tu travailles en local, il faut que tu installes un serveur Apache sur ton ordinateur et que tu mettes ton site dedans. Comme je l'ai dis précédemment ceci doit être mis côté serveur, puisque seul le serveur peut envoyer de telle entête pour dire au navigateur de ne pas mettre en cache.
Commenter la réponse de Arto_8000
bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 19 nov. 2009 à 04:16
0
Merci
Bonjour à tous.

Merci de votre temps.

avec un simple Editeur de textes on peut
d'ailleurs probablement aller le lire sur
votre site ! non ?


Non. J'ai créé un mécanisme spécial où vous ne pouvez y accéder. Mais ce n'est pas le problème. Comme je l'ai indiqué, je cherche à ce que le script n'aille pas dans le répertoire temporaire du navigateur. Ma question : est-ce possible de réaliser cela ? Et si oui, comment ?

Merci.

BlueMan.
Commenter la réponse de bluemandfr
Arto_8000 1051 Messages postés lundi 7 mars 2005Date d'inscription 13 juillet 2010 Dernière intervention - 19 nov. 2009 à 05:02
0
Merci
Tout ce que tu peux faire, c'est indiquer au navigateur qu'un fichier en particulier ne soit pas mis en cache (conserver après utilisation). Pour le reste, le navigateur gère comme il le veut le contenu qu'il reçoit.

D'ailleurs, il n'existe aucun mécanisme aussi "spécial" qu'il soit pour empêcher d'avoir accès au contenu qui est dans tes fichiers javascript, html ou css. C'est de façon théorique et pratique impossible. C'est comme si tu envoyais du contenu par la poste et que tu voulais que ce contenu ne soit pas garder, analyser ou lu. La personne à l'autre bout peut faire ce qu'elle veut du contenu et c'est la même chose pour le web.
Commenter la réponse de Arto_8000
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 19 nov. 2009 à 06:35
0
Merci
>>J'ai créé un mécanisme spécial où vous ne pouvez y accéder
ah ? j'aimerais bien voir ça, tiens...
Commenter la réponse de Bul3
Bul3 4934 Messages postés samedi 1 juillet 2006Date d'inscription 2 février 2015 Dernière intervention - 19 nov. 2009 à 06:41
0
Merci
>>est-ce possible de réaliser cela ?
j'ai omis de répondre, je pense
l'avoir déjà fait, vous ne pouvez
rien faire à ce niveau là.
encore une fois : il faut bien copier
la page vers le micro client.
vous ne pourrez pas empêcher qu'on
voit votre javascript ( pourquoi faire
d'ailleurs ! )
Commenter la réponse de Bul3
bluemandfr 55 Messages postés vendredi 7 septembre 2007Date d'inscription 16 mai 2013 Dernière intervention - 19 nov. 2009 à 17:35
0
Merci
Bonjour.

Tout ce que tu peux faire, c'est indiquer au navigateur qu'un fichier en particulier ne soit pas mis en cache


Comment faire cela ?

J'ai essayé le fichier .htacsess pour Apache avec ceci :

<Files *.js>
Header set Cache-Control "no-cache, must-revalidate"
Header set Pragma "no-cache"
</Files>


et cela ne marche pas...

Merci !

BlueMan.
Commenter la réponse de bluemandfr

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.