3

私は現在、既存の会計アプリケーションと連携するタイム カード提出用のモバイル アプリケーションに取り組んでいます。言うまでもなく、このアプリケーションはリレーショナル データベースに大きく依存しており、その特定の依存性がモバイル アプリに反映されています。

現在の状態では、モバイル アプリケーションは WebSQL を使用して、ユーザーがインターネットにアクセスしている間にデバイスにロードされたテーブルへのオフライン アクセスを行います。タイム カードはローカル データベースで作成され、後でユーザーがインターネット アクセスを回復したときにアップロードされます。この機能は、アプリケーションのコアです。

私の質問は、IndexedDB への移行が A.) 実現可能か、B.) 賢い動きかということです。WebSQL が非推奨を回避していれば、これは問題になりません。私は IndexedDB をよりよく理解し始めており、JSON が比較的複雑なデータ ストレージにどのように役立つかを理解し始めていますが、リレーショナル データベースの機能を実際に複製できるかどうかについては、頭を悩ませることはできません。

アプリケーションの要件に基づいて、IndexedDB は代替手段ではないように見えますが、私はまだ概念に非常に慣れておらず、啓蒙に対してオープンです。

では、IndexedDB は代替になる可能性があるのでしょうか? IndexedDB を使用して、大量のデータを含む複数の関連テーブルを持つデータベースの機能を複製できますか。もしそうなら、どこでそれを行う方法に関する情報を見つけることができますか. そうでない場合、2 つに代わるものはありますか? (実際、WebSQL がサポートを失い、IndexedDB が実行可能でないと仮定します)。

関連して、IndexedDB はローカル データベースの作成を高速化しますか? PHP は現在、ユーザーがオンラインである間にデータベースにデータを入力するために使用されており、100 ほどのオプションでテーブルを埋めるのにかなりの時間がかかります。1,000 に近づくと、アプリケーションは完全に機能しなくなります (これはまれなケースであり、クライアントはそれほど多くのデータを使用することを強くお勧めしません)。

これに関するヘルプは素晴らしいでしょう。私はプログラミング全般に非常に慣れておらず、Web開発には非常に慣れていません。

4

3 に答える 3

2

http://www.caniuse.com/indexeddbによると、indexedDB のサポートはかなり限られているため、現時点ではジャンプしません。しかし、実装が成熟した将来、それはおそらく変わるでしょう。

個人的には、IndexedDB は奇妙で複雑に見えます。単純な単一テーブル操作を超えた場合は特にそうです。実際のテストは実行していませんが、いくつかのこと (レコードの結合など) を手動で行う必要があるため、非常に多くの JS コードが作成され、バグが隠れる領域が増えます。

では、IndexedDB は代替になる可能性があるのでしょうか? IndexedDB を使用して、大量のデータを含む複数の関連テーブルを持つデータベースの機能を複製できますか。もしそうなら、どこでそれを行う方法に関する情報を見つけることができますか. そうでない場合、2 つに代わるものはありますか? (実際、WebSQL がサポートを失い、IndexedDB が実行可能でないと仮定します)。

簡単に検索するとhttp://blog.oharagroup.net/post/16394604653/a-performance-comparison-websql-vs-indexeddbが表示され、IndexedDB の複数テーブルの使用パターンが示されています。また、パフォーマンスの比較も示されていますが、これは IndexedDB にとって有望なようです。ただし、この回答を参照して、このベンチマークを一粒の塩で受け取ってください。

関連して、IndexedDB はローカル データベースの作成を高速化しますか? PHP は現在、ユーザーがオンラインである間にデータベースにデータを入力するために使用されており、100 ほどのオプションでテーブルを埋めるのにかなりの時間がかかります。1,000 に近づくと、アプリケーションは完全に機能しなくなります (これはまれなケースであり、クライアントはそれほど多くのデータを使用することを強くお勧めしません)。

私は別の業界向けの同様のアプリの開発者ですが、私の経験はまったく異なります。古い iPhone 3GS でも、WebSQL ソリューションは適切に動作します。テーブルごとに数千レコードのスキーマをテストしましたが、大幅な速度低下はありませんでした。おそらく、各行を別々のトランザクションに挿入していますか?

iPad、iPhone、Android タブレット、Google Chrome で動作するため、ほとんどのお客様がこのアプリに満足しています。しかし、あるクライアントのセキュリティ要件では、Windows と IE の使用のみが許可されており、代替ブラウザーや Windows 以外のモバイル デバイスは許可されていません。これは、WebSQL が役に立たない唯一のシナリオです。IndexedDB とネイティブ アプリを調査しましたが、これまでのところ、ネイティブ アプリの方が優れた選択肢であると考えています (C# のベース ライブラリは Xamarin アプリと Windows Phone アプリの間で共有できます。言うまでもなく、C# はルース型の JS コールバックよりもはるかにコーディングしやすいでしょう)。地獄)。

于 2012-04-05T14:32:17.283 に答える