問題タブ [indexeddb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-applications - Webアプリに最適な大容量ローカルストレージオプションは何ですか?
オフラインアクセスのためにキャッシュする必要のある画像がたくさんあるjquerymobileを使用してWebアプリを構築していますが、これを実現するための最良の方法を探しています。
元々、画像のキャッシュマニフェストファイルを作成しようとしていましたが、数が多すぎてサイズ制限を超えています。Indexeddbも検討しましたが、まだあまりサポートされていないようです。
このソリューションは、AndroidとiOSの両方で機能し、Webブラウザーでもアクセスできる必要があります。合計ストレージ容量は、おそらく15〜20MB程度である必要があります。これに適したオプションはありますか?
また、私はWebアプリの経験があまりないので、提供できる例があれば素晴らしいと思います。
php - JavaScript を使用して画像を IndexedDB に読み書きする
一連の画像を IndexedDB に保存し、それらを html ページにロードする Web アプリ用の JavaScript (jquery?) を作成するのに助けが必要です。
この形式の画像のリストである img.html という 2 つの html ページがあります。
そして index.html は、次の形式の一連のイメージ タグを含むメイン ページです。
ユーザーがボタンをクリックして img.html からすべての画像を IndexedDB にロードし、別のボタンをクリックして IndexedDB から画像を読み取り、index.html の適切な画像タグに挿入できるようにしたいと考えています ( img.html の「image-id」は、index.html の適切な img タグ ID に対応します)。
また、一定期間後にDBを消去するCookie(またはその他の方法)を設定することは可能ですか?週に 1 回程度、サーバーから画像を再読み込みするようユーザーに強制できるようにしたいと考えています。
私は javascript や indexeddb が得意ではないので、ヘルプや例を教えていただければ幸いです。
javascript - indexedDBに同期的にアクセスするにはどうすればよいですか?
indexedDBには、インデックス付きデータベースに同期的にアクセスできるという仕様がありますが、まだ実装されていません。
手動で同期させる方法があるのだろうかと思っていましたが、
私のJavaScriptは次のようになります。
では、成功メソッドが呼び出されるまで待機させてから続行するために、そこに何かを入れることができますか?
これを実行したい理由は、上記のコードがこのメソッド内にラップされているためです。
つまり、これはESRIタイルレイヤー(私のWebページのマップにタイルをロードします)であり、そのメソッドは特定のタイルのURLをすぐに返す必要があります。画像がまだデータベースにキャッシュされていない場合は、画像を読み込むためのURLになるか、これが
ここで、 BASE64DATAは、以前にキャッシュされた場合のデータベースからのデータです。
以前はこれにlocalStorageを使用していましたが、これは同期的に機能しますが、5 MBの制限があるため、indexedDBを試してみようと思いました。
nosql - IndexedDB のタグ付きドキュメント モデル
曲とタグがあります。タグは、「録音場所」や「最終録音日」などのタイプにすることができます。
リレーショナル モデルでは、song_id および tag_id 情報を保持する結合モデルがあります。しかし、indexeddb のようなドキュメント ベースの DB では、タグとその情報をドキュメントに直接保存します。固有のタグが多くなければ、長期的には DB の負荷につながらないのだろうか?
別の曲で既に使用されているタグの 1 つが別の曲で必要になる場合は、タグが重複します。
もちろん、ここでもジョイン ストアを使用できますが、これには 2 つのテーブルに対する手動フェッチも含まれます。
モデルについていくつか質問があります。
- 曲とタグのストアが必要ですか?
- 各曲に付けられたタグの一括更新はどのように行われますか?
- これを高速化するには、おそらくどのインデックスが必要ですか?
私の主な側面は、タグ値を介して検索することです(およびタイプでフィルタリングします)。
google-chrome - indexedDBを削除する方法は?
IndexedDBの使用を伴うプロジェクトで働いています。このテクノロジーを知り始めたので、最初からやり直すことができるように、indexedDBを手動で削除できるようにする必要があります。
Firefoxでそれを行う方法を見つけましたが、GoogleChromeの方法を見つけることができません。
このフォルダの内容を削除してみました(私はMacを使用しています):
{home}/Library/Application Support/Google/Chrome/Default/IndexedDB
しかし、ChromeはどこにでもDBがあるようですので、最初からやり直すことはできません。
html - Chrome で IndexedDB onversionchange イベントが発生しない
Firefox と Chrome の両方で、html5 仕様の IndexedDB API を使用しています。
私のせいなのかブラウザのバグなのかわからないので、ここで共有したいと思います。
APIによると、ローカル データベースへの接続を開いたときに発生するonversionchangeというイベントがあり、使用されているバージョン番号はデータベースのものよりも大きくなっています。私の問題は、このイベントが Firefox では発生しているが、Chrome では発生していないことです。
いくつかのモードを試すサンプルコード:
バージョン番号を変更しても onversionchage イベントが発生しません。
更新ebidelが回答した ように、Chrome の実装は現在の仕様に従っていないため、クロスブラウザー クライアント コードを使用するには、onversionchangeイベントとdatabase.versionの手動比較の 2 つの状況を処理する必要があります。
コード例を含むリンクのカップルを次に示します: Chromium google groupと HTML5 Rocks!
javascript - indexedDB を使用している場合、「setVersion」の取得は関数エラーではありません
次のコードを使用して、IndexedDB のパフォーマンスをテストしようとしました。コードはhttp://www.html5rocks.com/en/tutorials/indexeddb/todo/から変更されています。chrome では問題なく動作しますが、Firefox 10 では「db.setVersion は関数ではありません」と言って失敗します。Firefox で動作するようにコードを変更する方法を知りたいですか?
html - IndexedDB エントリから Arraybuffer を保存
Blob と arraybuffers を indexedDB に格納することができます (こちらをご覧ください)。私の問題は、pdfファイルをストレージに保存していて、ユーザーが特定のリンクをクリックしたときにそれらを「ダウンロード」したいということです。ローカルの indexDB データベースからファイルを「ダウンロード」することはできますか?
indexeddb - indexedDBでの大文字と小文字を区別しない検索
index、openCursor、keyRangeを使用してindexeddbオブジェクトストアで大文字と小文字を区別しない検索を実行できるかどうか教えてください。大文字と小文字を区別して、
toUpperCase関数を使用して何かを実装できますが、さまざまなバリエーションがあります。それは実行可能ではありませんrelly...
どんな助けも歓迎します...ありがとう...試みの例:
更新
これは私が実装することになったものです:カバーする4つの範囲、すなわちFA、fA、Fa、fa ...これは最初の文字、すなわち「F」でのみ行われます
var boundKeyRangeUpper = IDBKeyRange.bound(term.toUpperCase(), term.toUpperCase()+'Z');
var boundKeyRangeUpper2 = IDBKeyRange.bound(term.toUpperCase(), term.toUpperCase()+'z');
var boundKeyRangeLower = IDBKeyRange.bound(term.toLowerCase(), term.toLowerCase()+'z');
var boundKeyRangeLower2 = IDBKeyRange.bound(term.toLowerCase(), term.toLowerCase()+'Z');
上記の検索結果は別のobjectStoreに保存されますが、説明は大文字であるため、FISH、FRUIT、FRESH SALAD ... F eg'r'の後に文字を押すと、検索はこの新しいオブジェクトストアを調べます。大文字です...これは理想的な解決策ではありませんが、機能し、私のニーズに迅速に対応します...おそらく、最終的には大文字と小文字を区別しない検索を取得しますが、そうではないかもしれません...
javascript - キャッチされない TypeError: indexedDB 使用時の Chrome のタイプ エラー
Chrome で使用する indexeddb ストレージをセットアップしようとしています。しかし、トランザクション Uncaught TypeError
を設定しようとするとエラーが発生します。READ_WRITE
webkitIDB の使用に関する適切な最新情報を見つけることができませんでした。だから私は基本的にここで盲目的に飛んでいます。私が間違ったことをしたアイデアはありますか?私が見逃したこれについての良い話はありますか?
設定:
保存機能:
要求objectStore
されたが作成され、this.dbTransaction
定義されていることが確認されました。