オフラインモードのWebアプリケーション動作に必要な4つの機能
カテゴリー:HTML & CSS
オフラインモードのWebアプリケーション動作に必要な4つの機能
Firefox 2.0のオフラインモードとは表示したページのデータをキャッシュするモードであり、この機能だけではオフラインでAjaxなどを駆使したGmail、ZimbraなどのWebアプリケーションを動かすことは、できません。
Chris Double氏はブログで以下のオフラインでWebアプリケーションを動作させるため、FireFoxは以下の4つの機能を備える必要があると述べています。
- DOM Storage .
- Offline Cache.
- Offline Events.
- JAR file Protocol.
[参考:Bluish Coder :Offiline Zimbra with Firefox]
なお上のアドレスの記事の一番下には、Firefox3のα vartionを使いオフラインでZimbraにログインしてメール機能を使いっている様子がアップされています。
こちら
ということで、この4つの機能について、簡単に調べてみました。
DOM Storage(client-side storage)
Mozilla Developer Centerに仕様に関するページがあったので、導入の説明部分だけ簡単に翻訳してみました。
DOM Storageメカニズムによって、「Stringのキーと値を対でセキュアに保存しておき、後で使用するときに取得する」、ということが可能になります。DOM Storageの目標はインターアクティブなアプリケーションを作成するための手段を総合的に提供することです。(これにはオフラインでの作業を可能にする機能を発展させることも含まれています。)
現在、Mozillaベースのブラウザのみ、動作するDOM Storageを実装しています。しかし、Internet Explorerも、これに似た"userData behavior"という機能を持っています。この機能によりInternet Exploreでも複数のブラウザのセッション間でデータを持ちまわることが可能です。
ブラウザの機能のみで適当な量のデータをいつでも保管しておく方法は存在していないため、DOM Storageは役立つでしょう。ブラウザのクッキーは容量に制限があり、また、系統だててデータを保管しつづける方法も提供されていません。そして他の(例えばFlash Local Storageなど)は余計なプラグ印を導入する必要があります。
......
......
[参考: Mozilla Developer Center:DOM:Storage ]
つまり、クライアントに情報をストーレジしておくための機能。
例えばメールアプリケーションだとメールやフォルダーなどの情報を、オンライン時にあらかじめストレージしておく。
「only Mozilla-based browsers provide a working implementation of the DOM Storage specification」
とあるように、Firefoxにはすでに実装されている。またIEにもuserData behavior使い対応することができる。
日本語のサイトで、これに関するデモを公開しているサイトがあったので紹介。
Young risk taker:IEとFirefox2.0以上で動作するClient Side Storage
Offline Cache
Webアプリケーションのためのキャッシュドライブ。(画像、ページ、などなどをキャッシュ)
キャッシュを読み込むためには、<link>要素に「a rel="offline-resource"」を記述する。
この機能はFirefox2には実装されていないが、Firefox3に導入される予定。
下記URLにてパッチが公開されている。
Add an API for putting resources in an offline cache
Offline Events.
ユーザがブラウザのメニューから、オフラインを選択したとき、あるいはネットワークの接続が切れたときに、オフラインとオンラインを切り替えるイベントを発生させる機能。
これはFirefox2には、まだ導入されておらず、Firefox3に導入される予定。
Firefoxの対応の現状と予定については下記URL。
Fire WHATWG DOM events when going online or offline
JAR file Protocol.
オフライン・キャッシュからjavaアプレットに取り込んで計算?ちょっとよく理解できなかったのでおいておきます。。
WHATWGによる標準化に関して
Robert O'Callahan氏が上で挙げた4つの機能の標準化に関してコメントしていたので、載せておきます。
これらのうち2つはすでにWHATWG specとなっていることに注目してください。さらにjar URI schemeは、すでに様々な製品で標準化されています。4つの中で、本当に新しい機能は<link rel="offline-resource">を使っている部分です。これは、アプリケーションを妨げることなく、保管された"offline cache"の中からresourceを取得します。これはとてもシンプルで、私たちは(導入するのに)正当な理由があるという自信があります。私達は、なんとかしてこれを標準化しようと思っています。また、私達はWebを前に進めるために、FirefoxでなくポピュラーなブラウザがこれらのAPIs ASAPをサポートすることを望んでいます。
[参考:Well, I'm Back: Offline Web Applications]
他にもオフライン機能に関する展望が述べられています。
name: 首領 URL:
JAR file Protocol.について
.jarファイルはjavaのアーカイブですね。Webアプリとしても、
Java AppletやJava Web Startに使われています。
中身は管理用のファイルがついたZIPファイルで、オフラインア
プリに利用するメリットは
*アーカイブなのでいちいちダウンロードしなくていい
*圧縮している
*署名やインディックスなどがついている
などがあるでしょう。
以下はJ2SE1.5.0のものですが、参考です。「JAR ファイルの仕様」
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jar/jar.html
また、以下のように、Java AppletやJava Web Startではある程度キャッシュコントロールが効くので、応用ができるかもしれません。
「アプレットキャッシュ」
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/plugin/developer_guide/applet_caching.html
「Java Web Start Version 6 の拡張機能」
http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/javaws/enhancements6.html
jreファイル中のファイルにアクセスするには
「Bluish Coder」
http://www.bluishcoder.co.nz/2007/02/offline-zimbra-with-firefox.html
によると、こうなるそうです。
jar:/zimbra/js/ajax.jar!/core/AjxCore.js
2007-04-18 14:23:58