![]() |
レンダリング性能とインタフェースに注目が集まりがちなWebブラウザだが、これからはAjaxやFlashを活用した「Webアプリ」のサポート状況も重視されるはず。今回は、Firefox 3で実現されるWebアプリ関連の新機能を紹介しよう。
Firefox 3のオフライン機能
SaaS (Software As A Service) 型のアプリケーション、いわゆる「Webアプリ」は、JavaScript / AjaxやFlashなどいくつかの実装方法がある。各種Webブラウザはその実行環境を提供するが、実装方法は違えど、クライアントPCがインターネットに接続されている"オンライン"での利用を前提とすることは共通だ。
しかし、Webアプリの普及に伴い、インターネットに接続できない状況でもその機能を利用したいという要望が増えている。その回答の1つが、Firefox 3でサポートされる「オフライン機能」だ。表計算やワープロにまでWebアプリの範囲が広がった現在、便利に使える場面があることは確かで、Googleの「Google Gears」など、現在のところ数種類の実装が存在する。
Firefox 3のオフライン機能は、Web Hypertext Application Technology Working Group (WHATWG) で定義された、Web Applications 1.0の仕様をベースに実装されている。以前からあるオフライン機能は、ページの表示にディスクキャッシュを使用する程度のシンプルなものだが、Webアプリのリソース (HTMLおよびJavaScript) はオフラインキャッシュ可能かどうかがタグで決められ、サーバと接続する前にネットワークの状態をチェック、オンラインであればXHR(XMLHttpRequest)を使用し、オフラインであればDOMStorageを使用する。さらにオン / オフラインの状態はイベントにより監視され、オフ→オンに変わるときデータがサーバと同期されるという仕組みだ。
論より証拠、Firefox開発メンバーの1人氏が作成したデモにアクセスしてみよう。メニューバーから[ファイル]→[オフライン作業]を選択してオン / オフラインを切り替え、Webアプリにどのような変化が現れるか確認してほしい。
なお、Mozillaのオフライン機能に対する取り組みは、Firefoxの開発から少し離れた位置でも進められている。2007年11月公開のWebアプリマッシュアップツール「Prism」、それをFirefox用アドオンとして実装した「Prism for Firefox」も、オフラインサポートの一種だ。独立したアプリケーションとして利用できるこちらのほうが、よりオフライン向きかもしれない。
ブラウザが中継局になる「マイクロフォーマット」
Firefox 3では、データフォーマット規格「マイクロフォーマット」もサポートされる。エンドユーザの認知度はともかく、さまざまなデータをWebブラウザから有効活用できる技術として、要注目の存在なのだ。
マイクロフォーマットは、Webサイトで利用するタグの一種。イベントや位置、人名など定められた情報をマークアップすることにより、Webサイト間における情報の共有 / 連動を可能にする。現在広く利用されているHTML / XHTMLに追記する形で利用できるため、サポートの負担が少ないことも特徴といえる。
この機能は、Firefox 3に対応したアドオン「Operator」で試すことができる。アドオンを追加すると、「連絡先」や「イベント」、「タグ空間」などの項目が表示されたツールバーが現れ、マイクロフォーマットをサポートしたWebサイトに接続すると、対応する情報をハンドリングできるようになるのだ。
Yahoo! が提供する地域情報サイト「Yahoo! Local」を例に説明してみよう。目的の情報 (ex. Italian Restraunt) と対象地域 (ex. New York) を入力して検索を開始すると、ツールバーの「連絡先」が明るく表示され、対象の店舗がプルダウンメニューに現れる。その店舗に対し[コンタクトを書き出す]や[Google マップで捜す]などのアクションを実行すると、その情報を扱うことができるアプリケーションに処理が引き渡される……たとえば[コンタクトを書き出す]を選択すると、Mac OS Xでは「アドレスブック」が起動される。Googleマップを選択すれば、その店舗の地図が(対応アプリケーションであるFirefoxの画面に)表示される、というしくみだ。
日本でマイクロフォーマットをサポートするWebサイトは少ないが、仕様がオープンということもあり、今後増加する可能性は高い。オン / オフラインのアプリケーションをつなぐ中継局的な機能を持つだけに、より便利な活用方法も考え出されるのではないだろうか。