今後10年を支えるWindowsアプリの条件:Windows Liveが魅せる次世代マッシュアップ(4/5 ページ)
Vistaの登場で知名度が上がるであろうWindowsガジェット。その中でもWindows Liveは、オンラインOSとしてMSの新たなプラットフォームとして位置付けられた。この記事では、Webページ作成の延長先上と考えられるそのテクニックを見せる。
Web.Networkクラスを使った通信方法
Web.Networkクラスを使って通信するには、Web.Network.createRequestメソッドを呼び出して、ネットワークリクエストオブジェクトを作成する。
Web.Network.createRequestメソッドの書式は、「Windows LiveガジェットのAPIリファレンス(http://promotion.live.jp/livesdk/reference.htm)」に記載されている。リファレンスによると、書式は次の通りだ。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
続いて、実例を見てみよう。
リスト3は、http://www.example.co.jp/MyData.xmlファイルを読み込み、そのXMLデータをパースし、Liveガジェットの内部に描画するという例だ。
MyData.xmlは、リスト4に示す簡単なデータ構造だと想定する(リスト4に示したXMLデータは、UTF-8形式で記述してあるものとする)。
リスト3では、initializeのメソッド内で、次のようにして、http://www.example.co.jp/MyData.xmlを取得するためのネットワークレスポンスオブジェクトを作成している。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
第4引数には、ここでの場合「OnXmlDataRecived」という関数名を指定した(この関数名は任意の名前で問題ない)。そのため、受信が完了すると、OnXmlDataRecivedという関数が呼び出されることになる。
実際に接続して受信するには、executeメソッドを呼び出す。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ネットワークレスポンスオブジェクトにおける通信は非同期である。このため、executeメソッドの呼び出しはただちに完了し、次の行の処理へと移る。
そして、受信が完了した時には、createRequestメソッドの第4引数に渡した関数――この例では、OnXmlDataReceived関数――が呼び出される(abortメソッドを呼び出すと、通信を取りやめることができる)。
createRequestメソッドのenumFlags引数にDUPLICATEフラグを指定しない限り、ネットワークリクエストオブジェクトは、同じURLを指定した場合に、そして2回目以降は、再取得しない。
Copyright © ITmedia, Inc. All Rights Reserved.