2011年2月25日金曜日

JSDeferredでjavascriptの非同期処理の問題を解決

javascriptは非同期処理が基本です。
プログラムを上から下に順番に記述しても、それが必ず順番通りに実行されるわけではありません。

簡単な処理を作るときには問題になりませんが、Aを実行した結果によってBまたはCを実行する、みたいな処理がある場合、Aの実行が終わるまで待ったずに条件分岐を行ってしまう、というようなことがよく起こります。

これを解消するためにコールバックを使うのですが、扱いがけっこう面倒です。

そこでJSDeferredが登場します。

http://cho45.stfuawsc.com/jsdeferred/doc/intro.html

Deferを辞書で調べたところ、読みは「ディファー」、意味は「延期された; 繰延べ扱いの; 据え置きの」と出ました。

これは公式サイトのサンプルコード。

next(function () {
alert("Hello!");
return wait(5);
}).
next(function () {
alert("World!");
});


こう書くことで「Hello!(5秒停止)Worlds!」という実装ができます。すばらしい!

javascriptはめざましい進化を遂げて活躍の場も増えており、コードの量も増え、処理も複雑化してきているので、こういうライブラリはコーディングする者にとって本当にありがたいです。

0 件のコメント:

コメントを投稿