2011-06-22 4 views
2

J'ai une page qui appelle des informations à partir d'un fichier XML, et lorsque les informations ajoutées au fichier XML actualisent la page; mais la nouvelle information ne s'affiche pas automatiquement, vous devez actualiser la page plusieurs fois pour qu'elle apparaisse.Empêcher la mise en cache des fichiers XML

J'ai déterminé qu'il s'agit d'un problème de mise en cache, car les informations nouvelles/ajoutées s'affichent immédiatement si j'utilise un autre navigateur pour afficher la page dès que l'information est soumise.

Ma question est: Est-il possible d'utiliser dans un fichier XML afin d'empêcher que le fichier XML lui-même ne soit mis en cache, et si oui, comment? Si je ne peux pas le faire et que je dois le mettre dans le fichier HTML, est-il possible de spécifier uniquement le fichier XML chargé ou devrais-je l'appliquer à la page entière?

Exemple de ce que je suis en train de faire:

<?xml version="1.0" encoding="UTF-8"?>

<meta http-equiv="Cache-control" content="no-cache" />

<stuff>

<someSpecificStuff/>

</stuff>

Répondre

1

Si vous transférez le XML sur HTTP, vous pouvez utiliser les en-têtes HTTP pour contrôler la mise en cache. Il y a un bon tutoriel ici http://www.mnot.net/cache_docs/

Si vous avez accès au serveur qui sert le fichier, vous pouvez y démarrer. Différents langages et serveurs implémentent des contrôles de mise en cache de différentes manières. Par exemple, .Net utilise le HttpCachePolicy. IIS also allows you to set headers. Java, PHP, Apache ont tous aussi des solutions.

0

Cela m'a aidé à ne pas charger le fichier data.xml mis en cache en arrière-plan.

REMARQUE: Cela ne fonctionne pas avec plusieurs domaines.

<iframe id="dataXml" src="data.xml" width="1" height="1" style="border: 0px;"></iframe> 
<script type="text/javascript">window.onload = function() {document.getElementById("dataXml").contentWindow.location.reload(true);}</script> 
Questions connexes