2005年の始めにAjaxという言葉が知られるようになってから、Ajaxは急速に技術の進化を遂げ普及してきました。読者の皆さんの中にもAjaxの開発を実際に経験した方が増えているのではないでしょうか?
編集部注:Ajaxそのものについて詳しく知りたい読者は、 「いまさら聞けない、“Ajax”とは何なのか?」をご参照ください。
この連載では、サンプルアプリケーションを通じて、Ajaxのさまざまなテクニック(Ajaxデザインパターンなど)をご紹介していきたいと思っています。
さらに、サンプルアプリケーションでは、Ajaxライブラリを活用し、MVC(モデル、ビュー、コントローラー)で設計することで、より実用的なサンプルにしていきたいと思っています。
編集部注:MVCそのものについて詳しく知りたい読者は、Java Solution FAQの記事、「MVCモデルという言葉をよく聞きますが何のことですか?」をご参照ください。
サンプルプログラムは、実際の開発にそのまま生かせるように、次の点に留意しました。
これは今後の連載でも同様です。
今回紹介するのは、Twitterをマッシュアップするサンプルプログラムです。
Twitterは、Twitter, Inc.が提供しているミニブログサービスです。Twitter上のユーザーの多くは、「おはようございます〜。いま起きました」「今日も徹夜でした orz」といったユーザー自身のいまのステータスをひと言コメントの形で1日に何度も書き込んでおり、それをコミュニティ形式で楽しむことができます。今回はTwitterのWeb APIであるTwitter APIを使って、投稿されたコメントを取得して表示します。
編集部注:Twitterそのものについて詳しく知りたい読者は、Master of IP Networkの記事、「いまだからこそTwitterの楽しさを知るべきです!」をご参照ください。
サンプルの仕様は、次のようになっています。
それでは、すでに完成したサンプルがありますので、まずは実際に見てみましょう。
このサンプルアプリケーションには、次のテクニックが使用されています。
これらのテクニックをサンプルコードを見ながら、Ajaxデザインパターンの名称(後述)を使って紹介をしていきたいと思います。
本記事の内容を理解するためには、Ajaxの基本技術である、XMLHTTPRequestや、JSON、DOM操作、JavaScriptのオブジェクト指向による開発などの知識が必要になります。これらの基本技術については、「Ajaxフォトアルバムのフェードイン画像フレームを作ろう」という連載でも解説されているので、こちらも ご覧ください。
初めに、今回のアプリケーションの各機能をコントローラー、モデル、ビューそれぞれの役割ごとに分割してみます。
今回のアプリケーションで発生するイベントと処理の方法を、次のように設計しました。
●A:ページがロードされた
・A-1:Twitterのpublic_timelineを取得するように「モデル」に依頼
●B.:Twitterのpublic_timelineが取得された
・B-1:取得されたステータスを描画するように「ビュー」に依頼
・B-2:30秒後、再度Twitterのpublic_timelineの取得をするように「モデル」に依頼
「コントローラー」では主にイベントのハンドリングをし、アプリケーションロジック部分を受け持つ「モデル」や、描画を受け持つ「ビュー」に処理を依頼します。
モデルはアプリケーションのコアとなるロジックを担当します。
今回のアプリケーションでは、Twitter上のpublic_timelineを取得し、取得したステータスを引数として、コントローラーが呼ばれるようにする部分を担当させることにしました。
Twitterのpublic_timelineは、Twitter APIを使用することで取得できます。
なお、JavaScriptからTwitter上のデータを取得するためには、JSONPというテクニックを使用する必要があります。JSONPについては、次ページで説明します。
最新ステータスは、コントローラーを経由してビューに渡されます。
ビューは、ステータスを1件表示してから、1.5秒後に再度自分自身が呼ばれるようにタイマーをセットし、1.5秒後に残りのステータスからまた1件を表示し、再度自分自身を呼ぶ、ということを繰り返します。
Copyright © ITmedia, Inc. All Rights Reserved.