AX
<   2009年 12月 ( 1 )   > この月の画像一覧
【Javascript】 JavaScriptでwaitする方法 改
アクセスログを見ていると2005/10/23に書いたJavaScriptでwaitする方法の記事がよく閲覧されていると気づいた。

ただのメモとして書いた記事なのにたくさんの人が見ていてびっくり!たぶん見に来た人はただのメモ書きと知ってさぞかしがっかりして帰っていたのだろう・・・。申し訳ない・・・(´・ω・`)
というのもあのブログではjavascriptでのwaitの方法は書いていない。単純にfunctionの実行を遅らせる方法をブログの記事にしただけである。

そこで、今回はちゃんとwaitする方法を考えてみた。
前回も書いたが、
C言語にはsleep()という関数が存在し、引数として数字を与えてやれば、
その与えた時間だけ処理が止まる。

例えば、sleep(1000)なら1秒処理が止まってくれる。(単位はミリ秒)

Javaにも似たようなものがあり、wait()というメソッドが存在する。同じようにwait(1000)のようにして使う。

しかし、これと同等な機能はjavascriptにはない。
ということで自分で作ってみた。


function wait(ms) {
var d = new Date();
d.setTime(d.getTime() + ms);
while (new Date().getTime() < d.getTime());
}


指定された時間が経つまでループをして処理を止める。これでいけるはず。
ということで実行してみると ちゃんと処理が止まることを確認!!そしてそれと同時にザ・ワールド!!ブラウザも固まってしまいしたΣ( ̄□ ̄;)!!
CPUを50%(私のマシンは2コアなので実質100%)も使用してファンが唸りだす勢いです。
この方法だとループの処理にCPUが使用されブラウザは一切応答しなくなってしまいます。軽いブラクラです。ちなみにsafariだと危険なJavascriptが実行されているということで警告出てきました。orz

この方法はよくない。きっと誰も考えついて、破棄していったコードだろう・・・。

ということでもう1つ考えてみた。
[PR]
by manodeldio | 2009-12-19 22:15 | プログラミング