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
fichier de 98113 octets contenant <xml>000000000000...</xml>
test.htm
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
Partager