2005年12月12日

JavaScript の非同期処理 (2)

 前回のテストでは、処理中に他の処理を呼び出している部分が有ったので、ひたすらCPUを回すように実験コードをちょっと変えて見た。

var result = ""; // 共有される大域変数
function synctest(name,ntimes) {
if ( ntimes>0 ) {
var d1 = new Date();
var s1 = "" + d1;
result += "<br>"+name+" = " + s1;
for (ntimes--;ntimes>0;) {
var d2 = new Date();
var s2 = "" + d2;
if ( s1!=s2 ) {
result += "<br>"+name+" = " + s2;
s1 = s2;
ntimes--;
}
}
}
}

 これは、指定された回数分だけ毎秒メッセージを記録する様なコードだ。JavaScript には sleep() や wait() に類する物が無いので、処理が終了するまでCPUを占有している。
これを使って、
1.setTimeout によって 0.5 秒後から10秒間実行する
2.setTimeout によって 1.0 秒後から10秒間実行する
3.setInterval によって 1.5 秒間隔で3秒間の実行処理を3回実行する
4.button.onclick によって10秒間実行する
5.XmlHttpRequest によってデータが読み込まれた後(約3秒後)から10秒間実行する
と言うイベント処理を設定して実行して見た。
これらの処理は、入り乱れて実行されるのか、シーケンシャルに実行されるのか、どうだろう?...続きを読む


posted by lepton at 14:11| 東京 ☀| Comment(0) | TrackBack(0) | JavaScript | このブログの読者になる | 更新情報をチェックする
プロフィール
名前:lepton
年齢:over 40
ウェブサイトURL:http://www.hmsoft.co.jp/lepton/
メールアドレス:contact@hmsoft.co.jp

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は180日以上新しい記事の投稿がないブログに表示されております。