HTTPRequest : Internet Explorer gèle

HTTPRequest : Internet Explorer gèle - HTML/CSS - Programmation

Marsh Posté le 28-07-2005 à 12:00:04    

Bonjour,
 
J'ai un gros problème, j'ai un script(check_played.js) qui appelle une page PHP(game.php), qui retourne du HTML au script javascript, et, assez aléatoirement(parfois ça le fait, parfois pas), quand du code HTML est retourné, IE se gège: Internet explorer doit fermé, blablabla... fichier incriminé: mshtml.dll
 
code de check_played.php

Code :
  1. function refresh(jou_asking)
  2. {
  3. var xhr_object = null;
  4. if(window.XMLHttpRequest) // Firefox
  5.  xhr_object = new XMLHttpRequest();
  6. else if(window.ActiveXObject) // Internet Explorer
  7.  xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
  8. else
  9. { // XMLHttpRequest non supporté par le navigateur
  10.  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  11.  return;
  12. }
  13. window.document.images["board"].src = "get_picture.php?player="+jou_asking;
  14. xhr_object.open("GET", "game.php?player="+jou_asking, true);
  15. xhr_object.onreadystatechange = function anonymous0()
  16. {
  17. if(xhr_object.readyState == 4)
  18.  {
  19.  //alert(xhr_object.responseText);
  20.  document.getElementById("got_content" ).innerText = xhr_object.responseText;
  21.  }
  22. }
  23. xhr_object.send(null);
  24. }


 
Contenu type retourné par game.php(le nombre de "area shape" change, d'autres paramètres texte(joueur, atout, ...) changent aussi, mais je crois qu'ils ne sont que très peu(pas du tout) impliqués :
 

Code :
  1. <span>Joueur </span><b>2</b> | <span>Atout: coeur</span><br>
  2. <span>Main: Joueur 2</span><br>
  3. <span>Coups: 0</span><br>
  4. <map name='map'>
  5. <area shape='rect' coords='140,420,240,570' onclick='write_played(2, 15);' href='javascript:;' alt='Jouer cette carte'>
  6. <area shape='rect' coords='260,420,360,570' onclick='write_played(2, 13);' href='javascript:;' alt='Jouer cette carte'>
  7. <area shape='rect' coords='380,420,480,570' onclick='write_played(2, 11);' href='javascript:;' alt='Jouer cette carte'>
  8. <area shape='rect' coords='500,420,600,570' onclick='write_played(2, 9);' href='javascript:;' alt='Jouer cette carte'>
  9. <area shape='rect' coords='210,590,240,740' onclick='write_played(2, 7);' href='javascript:;' alt='Jouer cette carte'>
  10. <area shape='rect' coords='240,590,270,740' onclick='write_played(2, 6);' href='javascript:;' alt='Jouer cette carte'>
  11. <area shape='rect' coords='270,590,300,740' onclick='write_played(2, 5);' href='javascript:;' alt='Jouer cette carte'>
  12. <area shape='rect' coords='300,590,330,740' onclick='write_played(2, 4);' href='javascript:;' alt='Jouer cette carte'>
  13. <area shape='rect' coords='330,590,360,740' onclick='write_played(2, 3);' href='javascript:;' alt='Jouer cette carte'>
  14. <area shape='rect' coords='360,590,390,740' onclick='write_played(2, 2);' href='javascript:;' alt='Jouer cette carte'>
  15. <area shape='rect' coords='390,590,420,740' onclick='write_played(2, 1);' href='javascript:;' alt='Jouer cette carte'>
  16. <area shape='rect' coords='420,590,510,740' onclick='write_played(2, 0);' href='javascript:;' alt='Jouer cette carte'>
  17. </map>
  18. <spans>A vous</span>


 
Quelqu'un aurait-il une idée d'uù pourrait provenir ces freezes ?
Merci d'avance.


Message édité par momo194 le 28-07-2005 à 12:01:27
Reply

Marsh Posté le 28-07-2005 à 12:00:04   

Reply

Marsh Posté le 28-07-2005 à 12:04:34    

Et le fichier game.php il est où ?

Reply

Marsh Posté le 28-07-2005 à 12:07:02    

Je crois pas qu'il soit substantiellement important, car il ne fait que générer du code HTML, toutefois si ça peut aider, je peux le mettre, mais il fait tout de même 460 lignes sommairement commentées.


Message édité par momo194 le 28-07-2005 à 12:07:29
Reply

Marsh Posté le 28-07-2005 à 21:07:45    

Bonsoir,
 
Je suis maintenant sûr que c'est cette partie qui est en cause, quand je la mets en commentaires, tout le reste va bien; mais où est l'erreur ?
 

Code :
  1. elseif($player == 2 )
  2.   {
  3.   if(($tab_tirage_order[15] != "" ) AND (in_array($tab_tirage_order[15], $playable_cards))) echo "<area shape=\"rect\" coords=\"140,420,240,570\" onclick=\"write_played(2, 15);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  4.   else
  5.    {
  6.   if(($tab_tirage_order[14] != "" ) AND (in_array($tab_tirage_order[14], $playable_cards))) echo "<area shape=\"rect\" coords=\"140,400,240,550\" onclick=\"write_played(2, 14);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  7.   }
  8.   if(($tab_tirage_order[13] != "" ) AND (in_array($tab_tirage_order[13], $playable_cards))) echo "<area shape=\"rect\" coords=\"260,420,360,570\" onclick=\"write_played(2, 13);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  9.   else
  10.   {
  11.   if(($tab_tirage_order[12] != "" ) AND (in_array($tab_tirage_order[12], $playable_cards))) echo "<area shape=\"rect\" coords=\"260,400,360,550\" onclick=\"write_played(2, 12);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  12.   }
  13.   if(($tab_tirage_order[11] != "" ) AND (in_array($tab_tirage_order[11], $playable_cards))) echo "<area shape=\"rect\" coords=\"380,420,480,570\" onclick=\"write_played(2, 11);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  14.   else
  15.   {
  16.   if(($tab_tirage_order[10] != "" ) AND (in_array($tab_tirage_order[10], $playable_cards))) echo "<area shape=\"rect\" coords=\"380,400,480,550\" onclick=\"write_played(2, 10);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  17.   }
  18.   if(($tab_tirage_order[9] != "" ) AND (in_array($tab_tirage_order[9], $playable_cards))) echo "<area shape=\"rect\" coords=\"500,420,600,570\" onclick=\"write_played(2, 9);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  19.   else
  20.   {
  21.   if(($tab_tirage_order[8] != "" ) AND (in_array($tab_tirage_order[8], $playable_cards))) echo "<area shape=\"rect\" coords=\"500,400,600,550\" onclick=\"write_played(2, 8);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  22.   }
  23.  
  24.   if(($tab_tirage_order[7] != "" ) AND (in_array($tab_tirage_order[7], $playable_cards))) echo "<area shape=\"rect\" coords=\"210,590,".adjustmaparea(7, 210, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 7);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  25.   if(($tab_tirage_order[6] != "" ) AND (in_array($tab_tirage_order[6], $playable_cards))) echo "<area shape=\"rect\" coords=\"240,590,".adjustmaparea(6, 240, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 6);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  26.   if(($tab_tirage_order[5] != "" ) AND (in_array($tab_tirage_order[5], $playable_cards))) echo "<area shape=\"rect\" coords=\"270,590,".adjustmaparea(5, 270, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 5);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  27.   if(($tab_tirage_order[4] != "" ) AND (in_array($tab_tirage_order[4], $playable_cards))) echo "<area shape=\"rect\" coords=\"300,590,".adjustmaparea(4, 300, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 4);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  28.   if(($tab_tirage_order[3] != "" ) AND (in_array($tab_tirage_order[3], $playable_cards))) echo "<area shape=\"rect\" coords=\"330,590,".adjustmaparea(3, 330, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 3);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  29.   if(($tab_tirage_order[2] != "" ) AND (in_array($tab_tirage_order[2], $playable_cards))) echo "<area shape=\"rect\" coords=\"360,590,".adjustmaparea(2, 360, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 2);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  30.   if(($tab_tirage_order[1] != "" ) AND (in_array($tab_tirage_order[1], $playable_cards))) echo "<area shape=\"rect\" coords=\"390,590,".adjustmaparea(1, 390, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 1);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  31.   if(($tab_tirage_order[0] != "" ) AND (in_array($tab_tirage_order[0], $playable_cards))) echo "<area shape=\"rect\" coords=\"420,590,".adjustmaparea(0, 420, $tab_tirage_order, $player).",740\" onclick=\"write_played(2, 0);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  32.   }


 
Grand merci !

Reply

Marsh Posté le 28-07-2005 à 21:31:04    

Tu t'y retrouve dans ton code ?!? Tu peux pas remplacer ce gros pater par une boucle ? ça enleverais pas le problème mais au moins, ça piquerais moins les yeux...et donc du coup, ça serait peut être plus simple pour voir où est le problème


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 28-07-2005 à 21:41:42    

on pourrait mettre ca dans une boucle mais ca demanderai un petit effort d'adaptation car il a certaines suites  de chiffres imbuvables qui ne passeraient po dans une boucle.
 
m'enfin, on voit tout de suite que cette jeune personne ne sais po optimiser son boulot

Reply

Marsh Posté le 28-07-2005 à 22:49:46    

Bonsoir,
 
La boucle c'est infaisable, il y a trop de paramètres conjugués et pas vraiment de suite exploitable pour générer ce qu'il faudrait.
 
Quant à cette personne d'un certain âge, elle devrait savoir écrire:
 
1) Une phrase commence par une majuscule et se termine par un point.
2) Le conditionnel 3ème personne du singulier prend comme terminaison -raiS.
3) "ca" n'est pas un mot français, "ça" oui.
4) Erreur de construction "Il a", mais "Il y a".
5) "po" n'est pas un mot français, "pas" oui.  
6) Le présent 3ème personne du singulier prend comme terminaison -t.
 
De plus, si toi, personne mature était expérimentée, tu me dirais sûrement comment résoudre mon problème, je cherche des solutions concrètes, pas des critiques(sur mon code peut-être, mais pas sur mon jeune :d âge).


Message édité par momo194 le 28-07-2005 à 22:51:46
Reply

Marsh Posté le 28-07-2005 à 23:04:52    

attend je corrige ca


Message édité par gatsusat le 28-07-2005 à 23:05:06
Reply

Marsh Posté le 28-07-2005 à 23:26:37    

momo194 a écrit :

Bonsoir,

La boucle c'est infaisable, il y a trop de paramètres conjugués et pas vraiment de suite exploitable pour générer ce qu'il faudrait.

 
[..]Blablabla[..]


 
bah ta boucle elle est faisable tu vois. Tes paramètres je me les mets au cul dans un tableau et hop je splitte mon tableau et pouf je recupère mes paramètres et les mets là ou il faut.
 
et donc le premier groupe de coordonnées correspond à ton truc de 0 et le dernier au 15.
 

Code :
  1. $array1 = array("420,590,420,740","390,590,390,740",.....,"140,420,240,570" );
  2.   for($i=15; $i>=0; $i--){
  3.  
  4.   if(($tab_tirage_order[$i] != "" ) AND (in_array($tab_tirage_order[$i], $playable_cards)))
  5.     {
  6.  list($Coord1,$Coord2,$Coord3,$Coord4) = split(",",$array1[i]);
  7.  echo "<area shape=\"rect\" coords=\"";
  8.  echo $Coord1.",".$Coord2.",";
  9.  if (i<=7) {
  10.  echo adjustmaparea($i, $Coord3, $tab_tirage_order, $player).",".$Coord4,
  11.  }
  12.  else {
  13.  echo $Coord3.",".$Coord4;
  14.  }
  15.  echo "\" onclick=\"write_played(2, $i);\" href=\"javascript:;\" alt=\"Jouer cette carte\">";
  16.  }
  17.   }


Message édité par gatsusat le 28-07-2005 à 23:32:06
Reply

Marsh Posté le 28-07-2005 à 23:26:39    

momo194 a écrit :


Quant à cette personne d'un certain âge, elle devrait savoir écrire:
 
1) Une phrase commence par une majuscule et se termine par un point.
2) Le conditionnel 3ème personne du singulier prend comme terminaison -raiS.
3) "ca" n'est pas un mot français, "ça" oui.
4) Erreur de construction "Il a", mais "Il y a".
5) "po" n'est pas un mot français, "pas" oui.  
6) Le présent 3ème personne du singulier prend comme terminaison -t.


Eh mais t'es un blagueur toi  :whistle:  
Sans blague çà te sert à quoi ? En plus t'es assez mal placé pour dire çà, tu n'ecris pas mieux et à la base c'est toi qui poses une question donc c'est pas à toi de te plaindre je crois  [:spamafote] , si un dévelloppeur te dit qu'il y a nécéssité d'optimiser ton code, bah demandes plutôt quelle voie prendre que de te plaindre  [:spamafote]

Reply

Marsh Posté le 28-07-2005 à 23:26:39   

Reply

Marsh Posté le 28-07-2005 à 23:42:06    

ok, merci pour le bout de code, ça marche bien, mais ça me retourne la même chose.
Mon problème est est toujours là, cependant j'ai remarqué, que si je laissais du temps(~10 secondes) avant de cliquer sur les zones cliquables, ça ne me faisait pas le problème.
 
N'y aurait-il pas un un buffer(javascript ou PHP) quelconque à vider ?
 
Merci

Reply

Marsh Posté le 28-07-2005 à 23:58:22    

momo194 a écrit :

ok, merci pour le bout de code, ça marche bien, mais ça me retourne la même chose.
Mon problème est est toujours là, cependant j'ai remarqué, que si je laissais du temps(~10 secondes) avant de cliquer sur les zones cliquables, ça ne me faisait pas le problème.
 
N'y aurait-il pas un un buffer(javascript ou PHP) quelconque à vider ?
 
Merci


Les <area> sont vraiment nécessaire ? car si c'est pour représenter une carte carré, un simple lien en display: block suffit.
http://forum.hardware.fr/hardwaref [...] 4743-1.htm
 
 
Peut être que IE crash car tu lui envoie trop de code, ou du code plus ou moins imbuvable, c'est possible ? (j'en sais rien, hein..)  
Verifie bien que quand tu interoge ta page php via l'obj xmlhttprequest, tu es bien en assynchrone.
 
Et fait des recherches sur crash + xmlhttprequest, peu^t être que c'est un bug connue  


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 29-07-2005 à 00:19:03    

ton writeplayed !!!! Est-ce qu'il fait un return false quand tu clique dessus ???
 
sinon autant directement faire un href="Javascript:Writeplayed(2,12)"

Reply

Marsh Posté le 29-07-2005 à 00:20:05    

tu dois avoir du javascript kipuducu quelque part pour ton PB dutemps à attendre ^pour cliquer

Reply

Marsh Posté le 29-07-2005 à 10:16:16    

Ok, merci, j'ai tenté la technique de gastusat, mais le résultat est le même.
Je tente maitenant la technique de zapan666, mais mon image d'arrière plan clignote(elle se refresh toutes les 3 secondes), avec une image de premeir plan ça ne me le faisait pas.
 
D'où peut provenir ce problème ?
 
Merci.

Reply

Marsh Posté le 29-07-2005 à 10:48:29    

ben ton problème est du à une mauvaise conception  
reprend ton script depuis le depuis. et aprend le web d'abord

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed