Bonjour,
J'ai fais mes premiers tests avec XMLHttpRequest aujourd'hui et je suis tombé sur un problème avec Internet Explorer. Voila déjà la fonction que j'utilise pour créer une instance de XMLHttpRequest :Avec mes premiers tests le contenu entier du ficheir .js que j'utilisais était le suivant :
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
29
30
31
32
33
34 var xhr; function newXHR() { // l'objet est crée dans la variable globale xhr xhr = false; // branch for native XMLHttpRequest object if(window.XMLHttpRequest) { try { xhr = new XMLHttpRequest(); } catch(e) { xhr = false; } // branch for IE/Windows ActiveX version } else if(window.ActiveXObject) { try { xhr = new ActiveXObject('Msxml2.XMLHTTP'); } catch(e) { try { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } catch(e) { xhr = false; } } } } function _evalueJavaScriptXHR() { if (xhr.readyState == 4) { eval(xhr.responseText); } }ensuite sur ma page j'appelle plusieurs fois la fonction "envoyeGetXHR" mais avec Internet Explorer seul la première exécution fonctionne alors qu'avec Firefox il n'y a pas de problème
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 var xhr; // création de l'objet XMLHttpRequest dans la variable globale xhr newXHR(); function newXHR() {...} function _evalueJavaScriptXHR() {...} function envoyeGetXHR(url) { if (xhr) { xhr.onreadystatechange = _evalueJavaScriptXHR; xhr.open('GET', url, true); xhr.send(null); } }
J'ai donc modifier pour recréer l'objet à chaque appel
Est ce que ce code ne vas pas poser de problème de remplissage de la mémoire ? Est ce qu'il y a une autre solution pour que cela fonctionne sous Internet Explorer ?
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 var xhr; function newXHR() {...} function _evalueJavaScriptXHR() {...} function envoyeGetXHR(url) { // création de l'objet XMLHttpRequest dans la variable globale xhr newXHR(); if (xhr) { xhr.onreadystatechange = _evalueJavaScriptXHR; xhr.open('GET', url, true); xhr.send(null); } }
Partager