本ブログの更新について

 本ブログの更新は2016年3月31日をもって終了しました.ありがとうございました.
posted by みっちぃ (管理人)

2007年07月11日

Google Gears の Resource Store を使ってプログラムを組んでみる

【はじめに】
   Google Gears は,Webアプリケーションをオフラインでも利用できるようにする新たな技術としてGoogle社が公開したものです.私自身,数年前から“Web型学習システムにこそオフライン閲覧機能が必要!”と主張して研究を続けてきた身ですので,Google Gearsがどんなものか気になってました.
 オフラインでのWebアプリケーション機能やコンテンツ閲覧を実現するために,本来サーバ上にあるファイルをローカルキャッシュに保存します.保存する方法として,ManagedResourceStore とResourceStore の2通りが用意されています.前者は,保存するリソース(HTMLファイルや関連する画像ファイル,jsファイルなど)をマニフェストファイルに記述しておき,それを参照してキャッシュする方法です.後者はキャッシュ対象のリソースのURLをJavaScript上で直接する方法です.
 今回は後者を使った方法を試してみました.まず本記事では,実際にオフライン表示の試し方を記載します....ソースの解説は別途記載する予定です(たぶん明日の記事).

【Javascriptを有効にしておく】
 Google GearsのためにJavascriptを有効にしておく必要があります.

【Google Gearsをインストールする】
 Google Gearsのページへアクセスして,「Install Google Gear」をクリックします.インストールが開始されます.

【本記事のキャッシュを行う】
 今回作ったJavascriptプログラムは,本ブログのコンテンツデザインに必要な静的な画像ファイル,jsファイルに加えて,コンテンツ内に貼りつけられた画像ファイルについてもキャッシュ対象にします.
 下記の「オフライン閲覧を有効にする」をクリックします.すると右図のような画面が表示されるので「Allow」をクリックします.Allowをクリックするとキャプチャが始まります.“キャプチャ完了”が表示されたら正常にキャプチャされています.

【Same Origin Policy】
 Google GearsもSame Origin Policy(同一元生成ポリシー)の制約を受けます.例えば本ブログの場合「http://mkozo.sakuraweb.com/」以外のホスト上のファイルはResourceStoreでキャッシュすることができません.本ブログでは殆どの関連ファイルを「http://mkozo.agentier.com/」に保存しているため,キャッシュできるのは本記事のhtmlファイルとスタイルシートぐらいです.
 これでは,あまり恩恵を受けないので,試験的にモックアップを作ってみました.モックアップではほとんどファイルがキャッシュされ,オフライン時でもオンライン時と(ほぼ)変わらない画面が表示されています.
 Google GearsにおけるSame Origin Policyの問題については「We are investigating ideas for granting permissions across origins.」と明記されており,つまり“Originを越えて許可するためのアイディアを研究中”とのことです.

【オフライン状態での閲覧】
 キャプチャが正常に終了したら,NICコネクタを抜くなどしてオフライン状態を作ります.オフライン状態になったら,ブラウザの更新ボタンを押下するなどして本記事に再アクセスします.オフライン状態にもかかわらずコンテンツが表示されたならば,その画面はキャッシュされたファイルによって表示されたものです.

【キャッシュの更新】
 本来,キャッシュが自動的に更新されるようにプログラムしなければなりませんが,このスクリプトではそこまで考慮していません.

【キャッシュのクリア】
 キャッシュのクリア方法として,キャッシュそのものを削除する方法と特定のURLを指定して削除する方法があります.本記事ではキャッシュそのものを削除するようにしています.キャッシュは本ブログのオリジナル名を与えているので,Google Gearsを使ったほかのアプリケーションのキャッシュが消えることはありません.
 クリアするには「本ページのオフライン閲覧を無効にする」をクリックします.もし実際にお試しになった場合は,必ず「無効にする」ボタンを押下してください.キャッシュを削除しないと,更新ボタンを押しても最新のコンテンツが表示されなくなってしまいます.

【おわりに】
 いかがでしたでしょうか.無事動作しましたでしょうか.Javascriptを使うのは10年ぶりなので,ちょっと苦戦しながら作りました.そのため不具合があるかもしれません.その際はご一報いただけるとうれしいです.

posted by みっちぃ (管理人) at 21:34| Comment(0) | TrackBack(3) | 日々の研究
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/4674678

この記事へのトラックバック

Google Gears のResourceStoreを使ってプログラムを組んでみる(コード解説)
Excerpt: 昨日の「Google Gears のResourceStoreを使ってプログラムを組んでみる」に関連して,Google gearsのResourceStoreを使ったキャッシュ方法について簡単に解説..
Weblog: おきらくプログラマー
Tracked: 2007-07-12 16:14

Google Gears のResource Storeによるオフライン対応でSOA(Same Origin Policy)問題を解決する一方法
Excerpt: 【はじめに】 以前,Google Gears のAPIを用いたWebページのオフライン対応方法の簡単な例とコード解説を掲載しました.この例では,ManagedResourceStore ではなく R..
Weblog: おきらくプログラマー
Tracked: 2007-08-09 02:43

Google Gearsの注目度
Excerpt: 本ブログでは,以前 Google Gears の Resource Storeを使ったオフライン用のコンテンツキャプチャ方法を試しました.また同一元生成ポリシー(SOP:Same Origin Po..
Weblog: おきらくプログラマー
Tracked: 2007-08-27 00:34