Bonsoir,
J'ai un petit probléme avec des requetes synchrone. Je met a jour successivement le contenu de different <div> par l'intermediaire de requete synchrone. Sur Opera et IE7 ca marche sans soucis tandis que FireFox ne marche pas. Je vous montre le code pour y voir plus clair. Je créer un objet JS qui va me permettre de dialoguer avec le server et je demande juste au server de me print le contenu que je lui demande.
Code JavaScript
Code PHP
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 var AjaxEngine = { Request : getXHR(), Host : "include/sEngine.php", Method : "POST", Async : false } AjaxEngine.Send = function(Container, Content) { AjaxEngine.Request.onreadystatechange = function() { if(AjaxEngine.Request.readyState == 4 && AjaxEngine.Request.status == 200) { GetElementById(Container).innerHTML = AjaxEngine.Request.responseText; AjaxEngine.Request.abort(); } } AjaxEngine.Request.open(AjaxEngine.Method, AjaxEngine.Host, AjaxEngine.Async); AjaxEngine.Request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=iso-8859-1;"); AjaxEngine.Request.send("content=" + Content); } function getXHR() { if(window.XMLHttpRequest && !(window.ActiveXObject)) { try { return new XMLHttpRequest(); } catch(e) { return false; } } else if(window.ActiveXObject) { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { return false; } } } else { alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return false; } }
Appel pour Update les <div> (dans le body)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php header('Content-Type: text/html; charset=iso-8859-1'); $contentDir = $_POST['content']; include("actions/".$contentDir.".php"); ?>
Sous Firefox je ne rentre jamais dans le onreadystatechange.
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 <div id="menu"> <script type="text/javascript"> AjaxEngine.Send('menu','menu/menuGames'); </script> </div> <div id="content"> <script type="text/javascript"> AjaxEngine.Send('content','content/accueil'); </script> </div>
Merci de votre aide.
Partager