Forum Clubic

Limite d'ajax ?

Bonjour tout le monde.

voila j’utilise ajax pour mettre à jour des “select”. Jusque la tout va bien et ça fonctionne… presque ! ^^

je viens de me rendre compte que dans certains cas mes listes n’etaient pas rafraichies, j’ai remarqué qu’a chaque fois je renvoi du code xml plus lourd(18Ko) que d’hab (2-3Ko). Ce qui m’intrigue c’est que sur Opera je n’ai aucun problème, alors que sur IE et Firefox, j’ai le probleme…

est-ce que c’est vraiment une limitation des navigateurs ?

Dans Firefox, la console d’erreur me dit que xmlIn (mon retour en xml) est null, alors que si je l’affiche juste avant j’ai bien tout mon code xml…

merci d’avance
Edité le 20/11/2009 à 13:59

Montre ton code à tout hasard ?

Quand ça déconne, efface le cache entre deux appels. Si ça fonctionne, alors il faut que tu ajoute les entêtes pour éviter le cache. Éventuellement, tu peux ajouter dans l’url une clef (genre la valeur du select) pour avoir le cache actif.

Tu appelles comment ta page?
Edité le 27/03/2009 à 11:25

alors mon code :

la partie javascript/ajax



function changePickLists(listId, value, [...], otherList4, otherListValue4) {
	var req = newXMLHttpRequest();
	
	req.onreadystatechange = getReadyStateHandler(req, updatePickLists);
	
 	req.open("POST", doActions.jsp", true);
 	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 	req.send("action=changePickLists&listId="+encodeURIComponent(listId)+"&value="+encodeURIComponent(value)+"&[...], );
}

function updatePickLists(xmlIn) {
	
	var list = xmlIn.getElementsByTagName("items")[0];
	var items = list.getElementsByTagName("item");
[...] 
}

et j’ai du code java qui genere le xml qui a cette tete la :


<item>
<name>blabla</name>
<value><![CDATA[blabla]]></value>
<name>blabla</name>
<value><![CDATA[blabla]]></value>
<name>blabla</name>
<value><![CDATA[blabla]]></value>
<name>blabla</name>
<value><![CDATA[-]]></value>
<name>blabla</name>
<value><![CDATA[-]]></value>
</item>
<item>
<name>blabla</name>
<value><![CDATA[blabla]]></value>
<name>blabla</name>
<value><![CDATA[blabla]]></value>
<name>blabla</name>
<value><![CDATA[blabla]]></value>
<name>blabla</name>
<value><![CDATA[-]]></value>
<name>blabla</name>
<value><![CDATA[Annealed]]></value>
</item>
<item>

j’ai essayé de vider le cache, ça ne change rien.

Et dans ton getReadyStateHandler, il y a bien un “if (req.readyState == 4)” ?