ユーザーがサーバーからデータセット(データテーブル)をダウンロードしてデバイスに保存できるiPad /タブレットデバイス用のオフラインHTML5 Webアプリケーションを構築する必要があります。ユーザーは、サーバーから切断して、デバイス上でローカルにデータを表示/編集することができます。これは、セルラーカバレッジがなく、データを収集/更新する必要のある遠隔地で働く人々のためのものです。彼らはオフィスに戻ってくると、データをサーバーに同期/アップロードすることができます。それがHTML5である必要がある理由は、HTML5をサポートする最新のWebブラウザを持っている限り、それはプラットフォームにとらわれない、つまりiOS、Androidなどで実行できるということです。IndexedDBのラッパー関数
私は既にHTML5ローカルストレージ(データ用)とHTML5オフラインアプリケーションキャッシュ(ページ/ CSS/js /イメージ用)を使用してシステムを構築しましたが、小さなデータセットではうまく動作しますオフラインでの編集と保存、オンラインでの読み込み/同期)。今では、最大10,000行のデータをスケールする必要があります。それは動作しますが、かなり遅く、インテルのクアッドコア8GBマシンにロードしている間、ブラウザを10秒間停止します。
だから私は、ローカルストレージよりも、いくつかの優れた選択肢を研究してきました:
1)WebSQL:SQL言語を使用してデータを照会することができるとどうなるなどに参加する問題は、それが今ではないでしょう廃止予定ですです私はそれ以上何かを構築するための時間を費やしたくないので、これ以上サポートすることはできません。
2)IndexedDB:オブジェクトストア(技術的には、ローカルストレージAPIを使用してオブジェクトを保存していて、JSONを使用して保存しています)を使用します。 SQL Liteバックエンドでインデックスを使用するため、潜在的に高速です。データベースの作成、追加、読み込み、反復処理などの簡単な作業を行う定型コードが多数あります。私はちょうどselect(xyc, abc).where(abc = 123).limit(20)
のような簡単なクエリをしたいのですが、その代わりにそれを行うために多くのJavaScriptコードを書く必要があります。どのようにしてテーブル間の結合を行うための独自のコードを作成しますか?
jQuery pluginが見つかりました。 IndexedDBの苦労を緩和する他のライブラリやライブラリがありますか?
多くの感謝!
WebSQLがIndexedDBに賛成して放棄されたと私は信じています... –
WebSQL、Apple 5.0.1はもはやWebSQLデータを保持しません。言い換えれば、これはあなたのアプリのローカルデータベースを損なうでしょう。 Phonegapには回避策があります。 https://issues.apache.org/jira/browse/CB-330 – Wytze