AJAX - Taille maximale de retour

AJAX - Taille maximale de retour - HTML/CSS - Programmation

Marsh Posté le 09-11-2006 à 14:22:24    

Bonjour,
 
Je suis confronté à un problème en ajax, j'ai l'impression que lorsque je fais appel à Ajax pour le traitement de données, la valeur de retour renvoyée par le serveur vers la fonction callback ne peut excéder une certaine taille, i.e.4442 octets dans mon cas.
Y a-t-il une limite dans la taille des données que renvoient le serveur vers le client, dans le cas d'AJAX ?
 
Merci bien.
 

Reply

Marsh Posté le 09-11-2006 à 14:22:24   

Reply

Marsh Posté le 09-11-2006 à 19:10:02    

Quand tu fait appel à AJAX? Voudrais-tu parler de XmlHttpRequest?
Parceque "faire appel à Ajax", ça veut pas dire grand chose...
 
Donc si tu parle bien d'XmlHttpRequest, à ce que j'avais lu (si j'y retrouve je post le lien) il n'y a pas de limite, a noter tout de même que c'est de la théorie et que ça peut varier selon les navigateurs.
 
Ca donne quoi sous plusieurs navigateurs? Même chose?

Reply

Marsh Posté le 09-11-2006 à 20:34:17    

Bonsoir,  
 

Citation :

Quand tu fait appel à AJAX? Voudrais-tu parler de XmlHttpRequest?


oui, pour moi AJAX, par abus de langage, signifie l'emploi de XmlHttpRequest et de fichier XML.
 

Citation :

Ca donne quoi sous plusieurs navigateurs? Même chose?


La même chose :S
 
Je pense aussi qu'il n'y a pas de limite de retour, pourquoi y en aurait-il ?
Cela peut-il venir de ma fonction qui traite le retour, ce qu'ils appellent la fonction 'Callback'...allez savoir..
J'ai pas de piste, c'est le seul symptome que j'ai..  :(

Reply

Marsh Posté le 09-11-2006 à 21:17:18    

Envois ton code, des fois qu'on y trouve quelque chose de suspect.

Reply

Marsh Posté le 09-11-2006 à 21:49:39    

Donc voici ma fonction de callback qui prend en charge le retour du serveur. Son rôle est d'affecter a des variables, le contenu des blocs XML en fonction du nom de la balise..
Je pense pas qu'elle y soit pour grand chose. En revanche, je pense à autre chose.
Les balises xml ne sont pas affectées par cette troncature, par conséquent la suppression des données s'opèrent avant que je ne les enferme entre balises XML.
Voici la fonction en charge de cela:
 

Code :
  1. function Send_XML($Data_XML){
  2.         $str = '<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><root>';
  3.        
  4.         foreach($Data_XML as $field => $content){
  5.           $str .= '<'.$field.'>'.str_replace(array("\r","\n","  " ),'',$content).'</'.$field.'>';   
  6.         }               
  7.         $str .= '</root>';
  8.         header("Content-type: text/xml" );
  9.         echo $str;
  10.         exit;
  11.     }


 
 
Fonction de traitement du retour de Serveur:
 

Code :
  1. function ClbFunc(){   
  2.      try{
  3.         if((http.readyState == 4) && (http.status == 200)){
  4.           var root = http.responseXML.documentElement;
  5.           var popupLeft;
  6.           var popupWidth;
  7.           var popupHeight; 
  8.           for(var i=0;i<root.childNodes.length;i++){
  9.             var block = root.childNodes[i].firstChild.nodeValue;
  10.            
  11.             switch(root.childNodes[i].tagName){
  12.            
  13.               case "popupLeft":
  14.                 popupLeft = block;
  15.                 break;
  16.               case "popupWidth":
  17.                 popupWidth = block;
  18.                 break;
  19.               case "popupHeight":
  20.                 popupHeight = block;
  21.                 break;
  22.               case "popup":
  23.                 showfloatie(block,'event','',popupLeft,popupWidth,popupHeight);
  24.                 break;
  25.               case "alert":
  26.                 alert(block.replace("!n","\n" ));
  27.                 break;
  28.               case "redirect":
  29.                 window.location.replace(block);
  30.                 break;
  31.               case "reload":
  32.                 window.location.reload();
  33.                 break;
  34.              
  35.               default:
  36.                 document.getElementById(root.childNodes[i].tagName).innerHTML = block;
  37.                 break;
  38.            
  39.             }
  40.            
  41.  
  42.           }
  43.       }
  44.       }
  45.      catch(e){
  46.               alert(e);
  47.       }
  48.      finally{}
  49.      
  50.   }

Reply

Marsh Posté le 09-11-2006 à 22:02:53    

Correction sur deux post en amont.
Oui, il y a, semblerait-il une différence de comportement entre IE et Moz.
IE alterne affichage complet et [Object Error], Moz alterne affichage partiel et [Object Error]
Je soupconne le jeu de caractères, je suis en train de tester si l'iso-8859-15 n'est pas meilleure..

Reply

Marsh Posté le 10-11-2006 à 21:29:48    

non, c'est pas mieux.
ca y est ? on m'a abandonné?

Reply

Marsh Posté le 11-11-2006 à 02:22:16    

Essaye de voir exactement ce qu'il y a dans http.responseXML ou .responseText. Ca pourrait t'aider à identifier le pb

Reply

Marsh Posté le 12-11-2006 à 21:34:00    

ouep.. je suis dessus ^^ :)


Message édité par paowz le 12-11-2006 à 21:38:33
Reply

Marsh Posté le 12-11-2006 à 22:40:48    

.responseText m'affiche la bonne valeur sur les deux navigateurs dans une boîte "alert". C'est dans le traitement de la fonction Callback que ca déconne sur Mozilla  :??:  
On dirait que cette ligne:

Code :
  1. var block = root.childNodes[i].firstChild.nodeValue;


.. n'affecte pas toutes les données à la variable block sur Mozilla, tandis que si IE, ca le fait..
'Comprends pas  :??:  :??:  :??:  :??:  
 

Reply

Sujets relatifs:

Leave a Replay

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