Envoyé par : efdur
Date : 29/01/2008 17:24
Bonjour, je fait une boucle pour envoyer des fractions de chaines au serveur.
La chaine (textesplit) est coupée suivant les "." puis chaque sous chaine est envoyée l'une après l'autre.
Tous vas bien si je clique "OK" sur chaque alert.
Si je retire l'alerte le code ne fonctionne plus.
Exemple du code:
var textesplit = "chien.chat.poisson" var tabTexte = textesplit.split("."); for (i=0 ; i< tabTexte.length ;i++) { texte = tabTexte[i]; alert("texte = "+texte); //Si je retire le code ne fonctionne plus selectURL = (url+texte); xrequest.onload = parse_lareponse; xrequest.open("GET", selectURL, true); xrequest.send(null); }
si j'ai trois cent sous chaines je vais surement choper une ampoule :)
J'ai essayer de remplacer ma ligne d'alerte par "setTimeout (2000);" mais ça ne fonctionne pas...
Une idée? Merci.
Envoyé par : omicron
Date : 30/01/2008 08:09
Une idée ? Euh oui , si tu passais en mode synchrone ?
Envoyé par : efdur
Date : 08/02/2008 15:04
En faite c'est très bien même trop bien,je m'explique:
Les requetes sont postées trop vite (je pense) et arrivé a un certain nombre de requetes un serveur comme (GOOGLE) me redirige sur une page d'erreur et m'indique que je suis infecté par un spyware ou logiciel espion!
D'ou l'idée de placer un setTimeout dans la boucle et de temporiser les requetes.Mais cela semble impossible...
var textesplit = "chien.chat.poisson" var tabTexte = textesplit.split("."); for (i=0 ; i< tabTexte.length ;i++) { texte = tabTexte[i]; selectURL = (url+texte); //les deux lignes suivante bloc la fonction... if (selectURL = (url+texte)) {setTimeout(pause, 1000);} pause = function () {continue;} // xrequest.onload = parse_lareponse; xrequest.open("GET", selectURL, false); xrequest.send(null); }
Envoyé par : mymyoux
Date : 21/02/2008 22:53
Bonsoir, utilise plutot setInterval qui est plus fait pour ça (ou alors tu peux enchainer les setTimeout)
quelquechose comme :
var textesplit = "chien.chat.poisson" var tabTexte = textesplit.split("."); var monInterval = setInterval(executeur,1000); //lance la fonction toutes les secondes var i=0;
function executeur(){ var texte=tabTexte[i++]; if(i==tabTexte.length){ // une fois qu'on a parcouru tout le tableau clearInterval(monInterval); //on annule le setInterval } var selectURL = (url+texte); xrequest.onload = parse_lareponse; request.open("GET", selectURL, false); xrequest.send(null); }
si tu veux utiliser setTimeout
tu le places à la fin de ta fonction si le tableau n'est pas fini d'être parcouru
voilà
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.