Je sais à première vue (en raison du titre) cela ressemble à l'un des "Avez-vous essayé de rechercher Google avant de poster?" questions, mais je n'arrive pas à trouver une réponse au problème que je rencontre. Désolé si je suis un noob ... encore en train d'apprendre :)Saisie séquentielle de plusieurs délais d'attente aléatoires en JavaScript
Je dois simuler une pause en javascript, mais la fonction setTimeout (fonction_call, timeout) ne fonctionne pas pour moi. Raison d'être ... lorsque cette fonction setTimeout est appelée, elle appelle ensuite la fonction de manière asynchrone. J'essaie de simuler du texte tapé dans un div à des intervalles temporels aléatoires. Je veux qu'il apparaisse comme si une personne tape un message pendant que l'utilisateur consulte la page. Comme le timeout est un intervalle aléatoire et que l'appel de fonction est fait de manière asynchrone, le texte finit par être imprimé dans un ordre aléatoire.
Voici un extrait de ce que j'ai jusqu'ici:
typeString: function(s)
{
for(var i=0;i<s.length;i++)
{
var c = s.charAt(i);
var temp = setTimeout("MessageType.typeChar('" + c + "')", this.genRandomTime());
}
}
Merci d'avance pour votre aide.
CJAM
MISE À JOUR: En ajoutant le délai de temporisation à un varialbe, il m'a permis de compenser pour les appels timeOut asynchrones. Merci à tous pour vos réponses rapides. Voici le code mis à jour:
typeString: function(s)
{
var delay = 0;
for(var i=0;i<s.length;i++)
{
var c = s.charAt(i);
setTimeout("GoogleTyper.typeChar('"+c+"')", delay += this.genRandomTime());
}
}
J'aime votre réponse parce que c'est très détaillé, mais je dois donner le crédit à Stuart B puisqu'il l'a posté avant le vôtre. Le vieux pistolet le plus rapide de la routine ouest :(J'espère que d'autres personnes vous mettront en colère et vous rapporteront des points pour être gentil et aider. – regex