11540 sujets

JavaScript, DOM et API Web HTML5

Salut a tous

J'ai une question sur le temps d'execution de script javascript / ajax;

dans mon index j'ai des scripts javascript, quand je clic sur un bouton une variable est envoyer en POST via du ajax vers un fichier php, le resultat est.. comment dire... manipuler en JS lors de son arriver pour le mettre en forme. malheureusement le temps d'execution est long car je me retrouve avec 28 000 lignes, je me demander si PENDANT le script javascript, puis-je avoir la main sur la page, actuellement PENDANT la durée du script je ne peux cliquer nul part..

est ce clair ?
merci
sur mon projet Smiley smile je peux pas vraiment en dire plus mais ce sont quasiment tout les mots clef internet possibles, certaines tables seront peut être plus importante.

en fait, la longueur d'attente est du que pour chaque résultat, j'ai un écho (en php) via l'objet


[code]
xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { // si la reponse ajax est terminer et statut 200
			
				document.getElementById("id_quelconque").innerHTML = xmlhttp.responseText;
			}

Modifié par JENCAL (24 Mar 2015 - 15:03)
Ok je suis passer par du JSON pour améliorer l'envoi du résultat,

par contre quand je fais mon

for (j=0;j<quotien;j++)
            {
              document.getElementById("body_table_search_kw").innerHTML += json.response[j];
            }


en sachant que quotion fait environ 28 000 , cela plante a chaque fois le navigateur... quelqu'un aurait une solution ??
Modifié par JENCAL (24 Mar 2015 - 17:05)
Bonjour.

C'est le genre de truc que l'on évite, écrire dans le DOM dans une boucle.

Mieux vaut alimenter une chaîne dans ta boucle, puis juste après la fin de ta boucle ajouter cette chaîne dans le DOM.
var reponse = "";
for (j=0;j<quotien;j++) {
  reponse += json.response[j];
}
document.getElementById("body_table_search_kw").innerHTML = reponse;
Merci a toi snake, j'avoue que écrire dans le DOM via une boucle c'est pas fait pour...

Maintenant avec tes conseils cela marche niquel, merci beaucoup Smiley smile