2017-01-19 11 views
1

JSで使用できる永続ストレージ(localStorageまたはindexeddb)に基づく、ブラウザベースのキューデータ構造を探しています。indexeddbまたはlocalstorageにバックアップされたブラウザベースのキューを実装する方法は?

私の使用例は、オンラインに戻った後にサーバーと通信するためにキューを使用するオフラインアプリケーション用です。

これは、遅延のレールや遅延のようなものですが、ブラウザのものです。

それはこのようにAPIをサポートしています:キューが(webworkerまたはうまくいけば、何かのようなバックグラウンドで)関数を実行し、定期的に新しいエントリをポーリングdequeuう

Queue.Enqueue(() => { // do something }) 

どうすれば実装できますか?

+0

は、彼らがオフラインで助けることができるように –

+0

サービス労働者は思えサービス労働者を見てください。サーバーとの同期にどのように役立つかわからない – Doug

+0

私は普通のjs配列が仕事をすることができると思います。配列が空であれば、{push:function(){}と置き換えてライブに反応させることができます。 –

答えて

1

私は同じ必要性を持っていました。まず

、私はWebSQLストレージに裏打ちされたその永続キューを実装すると思ったが、その後、私はWebSQL規格はW3Cによって廃止されていることを見た:

https://www.w3.org/TR/webdatabase/

は最後に、私が使用してそれを実装し、 IndexedDBストレージ。私は自動インクリメントキージェネレータでオブジェクトストアを作成したので、私は単にキューの呼び出しに項目を追加することができます。

objectStore.add(item) 

そして、あなたは、単にやってすべてのキュー項目を反復処理するためにカーソルを取得することができます。

objectStore.openCursor() 

デフォルトでは、カーソルはキーの昇順に要素を反復します。挿入時にキーが自動インクリメントされるので、項目をFIFO順に取得しています。

現在のインデックスDB上のより多くの情報を見つけることができます。

https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB

0

をここではjStorage、Store.js、またはsimpleStorageで動作し、一般的なブラウザ内のlocalStorageキューです。 jQueryとGroucho localStorageマネージャが必要です。

https://github.com/tableau-mkt/jqueue

関連する問題