スポンサーサイト

一定期間更新がないため広告を表示しています


  • 2010.11.01 Monday
  • -
  • -
  • -
  • -
  • by スポンサードリンク

Google Gears その

 GoogleGearsの簡単なアプリケーション作成方法

1.まず、以下のサイトよりGoogleGearsをダウンロードし、インストールを行います。

  ■ダウンロードサイト

2.次にGoogleGears用の初期化ファイル(gear_init.js)をダウンロードします。

    ■ダウンロードサイト

※ダウンロード後に、スクリプトを読み込める位置へ配置し、
指定したファイルから読み込んでおけばOKです。
<script type="text/javascript" src="js/gears_init.js"></script>

3.以下のコードをスクリプトタグに埋め込みます。

if(window.google || google.gears ) {
  try{
var localServer = 
google.gears.factory.create('beta.localserver', '1.0');
  }catch(e){
alert( 'GoogleGearsのアクセスが許可されませんでした' );
  }
}

※上記コードにて、GoogleGearsの利用を許可するかどうかの確認メッセージが表示されます。

ここで、createメソッドの第1引数がポイントになります。
'beta.localserver'
今回は、ローカルサーバーオブジェクトを取得していますが、
GoogleGearのオブジェクトを取得する場合は、すべて上記のファクトリークラスの
createメソッドを利用して取得することになります。
(例)
ローカルサーバーオブジェクト:'beta.localserver'
データベースオブジェクト:'beta.database'
ワーカープールオブジェクト:'beta.workerpool'
HttpRequestオブジェクト:'beta.httprequest'
Timerオブジェクト:'beta.timer'

4.今回はManagedResourceStoreを利用するので、以下のコードを追加します。
if(window.google || google.gears ) {
  try{
      var localServer = google.gears.factory.create('beta.localserver', '1.0');
      var managedStore = localServer.createManagedStore('store');
  }catch(e){
      alert( "ユーザーによって、Gearの利用は許可されませんでした。" );
  }
}

※createManagedStoreメソッドに渡す引数は、ストレージ名称です。
今回は"store"としていますが、任意の名前を指定することが可能です。

5.そして、キャッシュされたファイルとサーバーのファイルとの差異をチェックするために、
  マニフェストファイルを作成しておきます。

{
// マニフェストファイル形式のバージョン(必須)
"betaManifestVersion": 1,

// ファイルのバージョン(必須)
"version": "20090303.01",

// キャッシュ対象のファイルを指定
"entries" : [
{ "url": "js/gears_init.js" },
{ "url": "js/message.js" },
{ "url": "index.html" }
]
}

※マニフェストファイルはJSON形式で記述します。

6.そして以下のように、マニフェストファイルをチェックする形式の処理を追加します。
if(window.google || google.gears ) {
  try {
      // GoogleGears用のローカルサーバオブジェクトを取得
      var localServer = google.gears.factory.create('beta.localserver', '1.0');
      if (localServer != null ) {
          // マネージドストア オブジェクトを生成
          var managedStore = localServer.createManagedStore('store');
  if ( managedStore != null ) {
              // ここで上記で作成したマニフェストファイルを指定する
              managedStore.manifestUrl = "mani/manifest.json";

             // 現在のキャッシュが保持しているバージョンを確認
             var currentVersion = managedStore.currentVersion;

             // キャッシュの更新
             managedStore.checkForUpdate();

             // タイマーイベントにて更新
             var timerId = window.setInterval(function() {

                 // 現在のリソースストアのバージョン
                 var newVersion = managedStore.currentVersion;

                 // キャッシュの更新が終了
                 if ( newVersion != currentVersion ||
                      managedStore.updateStatus == 0 ||
                      managedStore.updateStatus == 3 ) {
                      // ここでupdateStatusは以下の値を持つ
      //    0:更新タスクは正常終了
        //    1:マニフェストファイルのチェック中
        //    2:最新のマニフェストファイルにより、ダウンロード中
        //    3:更新タスクが異常終了
                      alert(("最新バージョン:[" + newVersion + "]");
                      alert(("キャッシュバージョン:[" + currentVersion + "]");
    
                      // 更新タスクの状態チェックを終了
                      window.clearInterval(timerId);
                      if ( managedStore.updateStatus == 0 ) {
                          // 更新が成功した際の処理
                          alert(("キャッシュの更新に成功しました");
                      }
               }
            }, 500);
         }
      }
  } catch(e) {
      alert(("ユーザーによって、Gearの利用は許可されませんでした。");
      alert(e);
  }
}else{
alert(("Google Gearsはインストールされていません。");
}

※この処理を、index.html(最初にアクセスするページ)のonloadイベント等に指定しておくことで、オフライン⇔オンラインの同期を最初に行うことができます。


尚、今回利用したクラスのAPIを参考程度まで・・・
■Factoryクラス
指定したオブジェクトを生成
 :create( className, version )
インストールされているGearsの、ビルドに関する情報を取得する
 :getBuildInfo()

■LocalServer
リソースストアを開くためのメソッド。存在しない場合はnullを返却する
 :createManagedStore( name, [requiredCookie] )

■ManagedResourceStore
指定されたマニフェストファイルのバージョンを見て、バックグラウンドでキャッシュの更新を行う。
 :checkForUpdate()

《 補 足 》
GoogleGearはDojoでも利用可能なようです。


GoogleGearsを試してみた

Googleが提供しているオフラインアプリケーションを実現するための
GoogleGearsを試してみました。

とは言っても、サンプルアプリケーションを動かした程度なのですが・・・

主な機能は以下の3点
.蹇璽ルサーバー
▲如璽織戞璽后SQLLight)を利用
ワーカープール

個々の機能は、Factoryクラスを経由して、
オブジェクトの生成から、操作までを可能とします。

簡単にキャッシュを管理する仕組みから、
ユーザが細かいレベルでキャッシュの管理をできるようです。

DataBaseアクセス自体も、ローカル単体で動かすことができることから、
パフォーマンス面でもだいぶ早いようです。

SQL自体は普通のRDBを利用する感じでJavaScriptから利用する事も可能。
トランザクションの仕組みを利用できることから、簡易なアプリケーションで利用する上では、申し分ないと考えられます。
(そもそも、オンラインになった状態でデータはサーバーに送信される仕組みで通常は構築するわけだから、簡単なデータ管理ができれば問題ないと思います)

また、重たい処理もワーカープールを利用することで、
バッククラウンドで処理を行うことで解消できるようです。
ただし、ワークプール内ではJavaScriptのAPIに制限があり、
独自のHttpRequestクラスやTimerクラスを利用して実装を行う必要があるようです。

■GoogleGearsダウンロードサイト

■GoogleGearsを利用した参考サイト
Remember The Milk


関連会社
株式会社ツクル
誠意と創意で技術を社会に活かすIT企業
          
          
時計
calendar
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< December 2017 >>
Amazon
selected entries
categories
archives
recent comment
recommend
links
profile
search this site.
sponsored links
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM
2008JUGEMキャラコングランプリ
キャラクターデザイン:磯崎洋助/「おしゃれひつじ」