一見すると(タイトルのせいで)「投稿する前にGoogleで検索してみましたか?」のように見えます。質問がありますが、私が経験している特定の問題に対する答えが見つからないようです。私が初心者ならごめんなさい....まだ学んでいます:)
javascript で一時停止をシミュレートする必要がありますが、setTimeout(function_call, timeout) 関数が機能しません。その理由は...そのsetTimeout関数が呼び出されると、関数呼び出しが非同期になります。
ちょっとした背景:
ランダムな間隔で div に入力されるテキストをシミュレートしようとしています。ユーザーがページを表示しているときに、実際にメッセージを入力しているように見せたいです。タイムアウトはランダムな間隔であり、関数呼び出しは非同期で行われるため、テキストはランダムな順序で出力されます。
ここに私がこれまでに持っているもののスニペットがあります:
typeString: function(s)
{
for(var i=0;i<s.length;i++)
{
var c = s.charAt(i);
var temp = setTimeout("MessageType.typeChar('" + c + "')", this.genRandomTime());
}
}
よろしくお願いします。
Cジャム
更新: 変数にタイマー遅延を追加することで、非同期呼び出しの timeOut をオフセットすることができました。迅速なご回答ありがとうございます。更新されたコードは次のとおりです。
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());
}
}