BT

PersisteJSとMySpaceによるGearsの採用で、クライアントサイドストレージの勢いは続く

| 作者: Matthew Bass フォローする 0 人のフォロワー , 翻訳者 白石 俊平 フォローする 0 人のフォロワー 投稿日 2008年6月4日. 推定読書時間: 3 分 |
Paul Duncanにより、PersistJS(source)が先日リリースされた。これは、クライアントサイドでのデータストレージを実現するJavaScriptフレームワークである。こうしたストレージは、オフラインでの利用が可能なWebアプリケーションによって主に利用される。PersistJSはクライアントサイド・ストレージを実現するのに、他のフレームワークに比べていくつかの利点を持っている。

なぜ単にクッキーを使わないのか?

以前は、クライアントサイド・ストレージを実現するための伝統的なソリューションと言えばクッキーであった。しかし、PersistJSが人気を博しつつある理由は、クッキーにいくつかの欠点が存在する事だ。例えばクッキーのサイズは4キロバイトに制限されている。また、クッキーは全てのHTTPトランザクションで送信されるため、帯域を無駄遣いする。その上、クッキーの作成や更新は面倒だ。 

PersistJSは何が良いのか?

  • とても小さい(GZIP圧縮されるとわずか3K)
  • 使われているブラウザに関係なく一貫したAPIを持つ
  • ブラウザプラグインや他のライブラリを必要としない
  • 現在のブラウザがサポートしていなければ、クッキーを代わりに利用する
  • IE、Firefox、Safariの次期バージョンもサポートすると宣言している
また、ブラウザの種類をテストするのではなく、互換性自体をテストする戦略を採っている。この意味するところは、例えばIEのある「特定のバージョンかどうか」をチェックする代わりに、呼び出している個々の関数呼び出しが、使用されているIEのバージョンで「サポートされているかどうか」をチェックする、と言う事だ。これにより例えば、ある特定の関数呼び出しが失敗するブラウザであっても、完全に対象外とする必要はないだろう。

使用例

クライアントサイドのストアにデータを保存する、最も単純な例は、
var store = new Persist.Store('My Data Store');
var data = "some arbitrary data of varying length";
store.set('saved_data', data);
値を取得するにはコールバックを必要とするが、やはり簡単だ。
store.get('saved_data', function(ok, val) {
if (ok) alert('saved data = ' + val);
});

その他のクライアントサイド・ストレージ・ソリューション

Dojo Storage(source)とGoogle Gears(source)も、クライアントストレージを提供している。しかし、こうしたブラウザプラグインに依存すると問題になる可能性もある。なぜなら、誰もがそのプラグインをインストールしている訳ではないからだ。

その他、いくつかの重要な違いが存在する。

Dojo Storage

  • 長所: 良いドキュメントがあり、大きなユーザベースがある
  • 欠点: Flashプラグインがインストールされている場合にサポートされるのはInternet Explorerのみ
  • 欠点: WebKitベースのブラウザ(Safariなど)がサポートされていない 
  • 欠点: 利用するには他のDojoライブラリが必要

Google Gears

  • 長所: Googleがバックに控えており、Dojoのようにドキュメントがしっかりしている
  • 欠点: まだ広くデプロイされていない
  • 欠点: プラグインがインストールされていなければ利用できない

ストレージに加えて、Gearsはクライアントサイドでの検索もサポートしている。今週San Franciscoで開かれたGoogle I/O(source)カンファレンスにおいて、MySpaceはメッセージの検索にGearsを使用している事を発表した(source)。今までは探しているメッセージを見つけるのにページを移動する必要があったが、Gearsを利用する事で、全文検索(source)はクライアントサイドで行われる。検索はインクリメンタルに行われ、ユーザの種類に応じて結果が返される。

PersistJSは、Gearsを含むたくさんの異なるバックエンドをサポートしている事に注意しよう。これによるPersistJSのメリットは、バックエンドが変更されても、一貫したAPIを使い続けられると言う事だ。

原文はこちらです:http://www.infoq.com/news/2008/05/persistJS

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT