BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース LocalForageでアプリケーションのオフライン対応を行う

LocalForageでアプリケーションのオフライン対応を行う

原文(投稿日:2014/02/26)へのリンク

Mozilla財団がlocalForageをリリースした。localForgeは、Webアプリケーションのオフラインデータをシンプルに保存できるようにする、新しいJavaScriptライブラリである。

最近のブラウザの技術ではないにも関わらず、選択肢の多さから、オフライン対応は常に統一感のない状態であった。このライブラリをユニークなものにしているのは、最新のクライアントサイド技術の特徴である非同期性とBlob対応という両方の長所を、シンプルなAPIとして組み合わせようとしている事である。このライブラリは、Webアプリケーションに強力なオフライン機能を提供する。そして、Webアプリケーションをモバイルのネイティブアプリケーションと同等の存在に近づけ、開発者の作業をより直感的にしている。

最初の選択肢のひとつであったlocalStorageは、オフラインの保存領域に対するシンプルなデータアクセスを提供した。しかしながら、その遅さ、同期性やバイナリのBlobが扱えない(例えば、mp3ファイルのキャッシュができない)ことがベンチマークテストによって示されている。それ以来、評判の良い他の2つの選択肢―IndexedDBWeb SQL―が登場してきた。これらは非同期性を持ち、高速であり、そして多くのデータセットをサポートしている。これら2つの技術の難点は、APIの使用方法があまりシンプルではないということと、どちらもすべてのメジャーなブラウザでサポートされているわけではないということである。

直近のlocalForgeのリリースは、統合された技術を用いてこれらの問題を打開しようとしている。すなわち非同期性と、とてもシンプルなlocalStorageのシンタックスを用いた、IndexedDBとWeb SQLのBlobサポートである。

var settings = {color: 'black', font: 'Helvetica'};
localForage.setItem('settings', settings, function(result) {
  console.log(result);
});

IndexedDBとWeb SQLのサポートを含めることにより、localStorage単体よりも多くのWebアプリケーションのデータ保存が可能となる。また、APIのノンブロッキングという性質は、get/setのコールにおいて、メインスレッドからの応答がなくならないようにする。そのため、Webアプリケーションをより高速化するのである。さらに、localForgeはコールバックとES6 Promisesをサポートしており、開発者にとって最適な実装方法を選べるようにしている。

このライブラリはIndexedDB、Web SQLそしてlocalStorageのドライバの自動読み込みと管理を行うので、手動でドライバを扱う必要がない(Webアプリケーションを動かしているブラウザに関係なく、最適なドライバが選ばれる)。IndexedDBもWeb SQLも利用できない場合、localForageはlocalStorageを代わりに使用するため、少なくとも基本的なデータはオフラインに保存することができる(しかし、Blobのサポートはなく、パフォーマンスはより遅くなる)。

localForageはすべてのモダンブラウザをサポートしている。非同期のデータ保存はすべてのブラウザで利用可能であり、以下の一覧のカッコの中は 該当する localStorageのサポートバージョンである。

  • Android Browser 2.1
  • BlackBerry 7
  • Chrome 23 (localStorageはChrome 4.0以降)
  • Chrome for Android 32
  • Firefox 10(localStorageはFirefox 3.5以降)
  • Firefox for Android 25
  • IE 10(localStorageはIE 8以降)
  • IE Mobile 10
  • Opera 15(localStorageはOpera 10.5以降)
  • Opera Mobile 11
  • PhoneGap/Apache Cordova 1.2.0
  • Safari 3.1

この記事に星をつける

おすすめ度
スタイル

BT