IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Requête sur un fichier déjà en cache avec Opera via XMLHttpRequest


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut [AJAX] Requête sur un fichier déjà en cache avec Opera via XMLHttpRequest


    J'utilise dans un javascript l'objet XMLHttpRequest pour lancer des requêtes vers des documents xml et normalement je rencontre pas de problème. Sauf que là, avec Opera en lançant des requêtes sur des fichiers de plus de 98112 octets (oui c'est précis ) ça marche... mais qu'une seule fois! Dès qu'une nouvelle requête est lancée sur la même URL, le navigateur utilise le cache et foire l'opération (il ne se passe plus rien, il faut vider le cache pour pouvoir reloader le fichier).

    La seule solution serait de générer une variable aléatoire dans l'url mais je veux éviter le reload systématique...

    Voici l'exemple simplifié au maximum, normalement sous Opera le lien affiche une boîte de dialogue qu'une seule fois :

    98113octets.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fichier de 98113 octets contenant <xml>000000000000...</xml>
    test.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/dtD/xhtml1-strict.dtd">
    <html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title></title>
      <script type="text/javascript">
     
     
        function LoadXML(Url, CallBack) {
     
            var XMlDoc = new XMLHttpRequest();
     
            XMlDoc.overrideMimeType('text/xml');
            XMlDoc.open('GET', Url, false);
            XMlDoc.send(null);
     
            alert("ok" );
     
        }
     
     
      </script>
     </head>
     <body>
      <div>
       <a href="javascript:LoadXML('98113octets.xml')">Go!</a>
      </div>
     </body>
    </html>
    Exemple : http://kabee.free.fr/operajax/test.htm

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    lors de la génération de ton fichier XML , ajoute les header indiquant de ne pas mettre le fichier en cache
    Par exemple , en PHP il faut ajouter au début de ton fichier les lignes suivantes

    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past

    tu aura vraisemblablement le même problème avec IE

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    oui mais si justement je ne veux pas systématiquement reloader le fichier et utiliser le cache (par ex pour récupérer un xsl) avec opera je fais comment sans que ça foire?

Discussions similaires

  1. Requêtes sur un fichier Excel ?
    Par jojo86 dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/08/2012, 00h50
  2. [SimpleXML] requête sur un fichier xml
    Par ANISSS dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 03/05/2007, 09h21
  3. [AJAX] requête sur fichier.xml => erreur 405 sous IE !
    Par jeje13009 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 26/03/2007, 21h42
  4. [AJAX] requéte sur un domaine différent
    Par remyli dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/08/2006, 14h35
  5. Réponses: 2
    Dernier message: 10/05/2006, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo