検索
特集

今後10年を支えるWindowsアプリの条件Windows Liveが魅せる次世代マッシュアップ(5/5 ページ)

Vistaの登場で知名度が上がるであろうWindowsガジェット。その中でもWindows Liveは、オンラインOSとしてMSの新たなプラットフォームとして位置付けられた。この記事では、Webページ作成の延長先上と考えられるそのテクニックを見せる。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
前のページへ |       

 例えば、2つのネットワークリクエストオブジェクトを作り、その両者が同じURLである場合には、後からexecuteメソッドを呼び出した方には、実際の通信が行われないことを意味する。第4引数に渡した関数は呼び出されないので注意してほしい。

 これは、すぐあとに説明するマニフェストにXMLリソースを記述する場合も同じだ。

 マニフェストにXMLリソースを定義した場合、そのXMLリソースと同じURLをもつリソースを、ネットワークリクエストオブジェクトを使って読み込もうとした場合、再取得はされない。第4引数に渡した関数は呼び出されないという特徴があるのだ。

 受信通知を受け取るOnXmlDataRecived関数は、リスト3において、次のように定義してある。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 第1引数は、ネットワークリクエストオブジェクトだ。第2引数はオプション引数であり、createRequestメソッドを呼び出した時の第3引数の値が、そのまま引き渡される。

 リスト3では、createRequestメソッドの第3引数にnullを渡している。このため、OnXmlDataRecuvedメソッドのarg部分にはnullが渡される。もし必要であれば、この引数を通じて、何らかの値を受け渡すことができる。逆に必要ない場合には、第2引数の受け取りを省略しても問題がない。

 第1引数として受け取るネットワークリクエストオブジェクトは、AJAXで使うXmlHttpRequestと同じプロパティを備えている。

 つまり、statusプロパティを参照して、HTTPのステータスコードを得たり、responseTextプロパティを使って文字列として結果を受け取ったり、さらにresponseXMLプロパティを使って結果をDOMオブジェクトとして取得したりすることができるのだ。

 リスト3では、まず、statusプロパティが200であるかどうかを調べ、リクエストが正しく完了したかどうかを調べている(「200」という値は、HTTPの成功を示すステータスコードのこと)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 そして成功したならば、responseXMLプロパティを使って結果をDOMオブジェクトとして受け取り、そのルート要素を取得している。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 あとは単純な、XMLのパース処理にほかならない。リスト3では、次に示すループ処理で、受信したXMLデータの子要素を取得し、それをpタグ要素に変換してLiveガジェット内に差し込んでいくという処理をしている。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 このプログラムの実行結果は、図4のようになる。


図4■リスト3の実行結果

 ここでは、XMLデータの取得例を説明したが、実際には、XMLデータである必要性はなく、テキスト形式やHTML形式など、どんな種類のデータでも読み込むことができる。

 XML以外のデータを読み込む場合には、responseXMLプロパティではなく、responseTestプロパティを使って、文字列として取得すればよい。その具体的な方法については、後述のJSONを使った結果取得の例を見てほしい。

 次回は、XMLデータをマニフェスト定義する方法から解説していこう。

 なお、記事の最初でも触れたように、オンライン・ムックPlus「Windows Liveが魅せる次世代マッシュアップ」では、“Liveガジェットのアイデア募集”を行っている。読者から寄せられたアイデアは、本特集上で優秀作やアイデア傾向などを紹介していく予定だ(2006年3月まで募集)。

前のページへ |       

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る