問題タブ [localforage]

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.

0 投票する
1 に答える
587 参照

javascript - $.when promise の解決が早すぎる

なぜ $.when の解決が早すぎるのか疑問に思っています。他のすべての約束が解決されたときにのみ解決する必要があります。何か不足していますか?

更新: http://jsfiddle.net/7hdx5j6z/6/

0 投票する
1 に答える
1903 参照

javascript - localForage を使用したオーディオ (mp3) の保存と取得

私は、リモート サーバーから 3 分間のオーディオ クリップ (mp3) を読み込んで再生する Ionic/Cordova アプリに取り組んでいます。

このチュートリアル ( http://www.html5rocks.com/en/tutorials/webaudio/intro/ ) に従いましたが、読み込みと再生は正常に機能します。

ただし、ロードされたmp3をローカルに保存/キャッシュして、ユーザーが一度ダウンロードするだけでアプリがオフラインで動作できるようにします。ファイルは約 750 KB です。以下の例では、ファイルはわずか 74 KB です。

アプリの他の場所では、Mozilla の localForage を ([ngular-localForage 経由で) 使用しています。これは、特に ArrayBuffers を格納するために使用できると述べています - http://mozilla.github.io/localForage/#setitem

ただし、再生できる形式でオーディオを取得できないようです...間違ったものを保存していると思われます-ArrayBufferが何であるかがよくわかりません!

とにかく、これが私の基本的なコードです(現在、ローカルファイルを使用しています)。最初のロードでオーディオが正しく再生され、2 番目のロードでエラーが発生します (以下を参照)。

そして、コンソールに表示される応答は次のとおりです。

現時点では、これを Chrome でのみテストしており、Cordova アプリではテストしていません。

私は何を間違っていますか?または、これを行うためのより良い方法はありますか? おそらく、代わりに MP3 をファイル システムに保存できますか?

0 投票する
1 に答える
380 参照

javascript - while ループを本当に非同期にする方法

私は、負荷の高いコンピューティングを実行すると同時に、ユーザーフレンドリーである必要がある JavaScript クライアント側プロジェクトに取り組んでいます。これはもちろん非同期機能を意味しますが、コンピューターが重いタスクを実行している間にユーザーが何かを実行できるようにすることも意味します。

これを非同期ループの例として取り上げます。

このループは完全かつ非同期に機能します。問題は、ユーザーが何か、たとえば次のボタンをクリックした場合です。

ループが終了した直後に警告メッセージが表示されます! そのため、ユーザーは機能が終了するまで何もクリックできません。

このタスク中にユーザーがいくつかのイベントをトリガーできるようにする方法はありますか?

0 投票する
2 に答える
2259 参照

javascript - localStorage で行うように、localForage から変数を割り当てるにはどうすればよいですか?

次のことで私を助けてください。

AngularJS アプリケーションを localStorage から localForage に変換しています。

アプリケーション全体で、このように localStorage 値を割り当てていました。

そして、このようなデータを取得していました。

だから私は console.log(myValue); // 'SavedValue' を出力しました

試してみると、localForageでこれを行うことができないようです。

myValue に値が設定されていません。

コールバックを使用すると正しい「myValue」にアクセスできるため、これはプロミスと関係があると確信していますが、サービスの残りの部分で使用するためにコールバックから取得したいと考えています。

また、私はサービスに参加しているため、 $scope に割り当てることはできません(方法がわからない場合を除く)。

どんな助けにも感謝します。

ありがとうB

0 投票する
1 に答える
395 参照

angularjs - locaforage getItem() が実行されていません

これまでのところキーはありません(ツール->ストレージの観点で確認)。しかし、そのコンソール出力は何も出力しません (Firefox の場合)。何が問題なのか誰か教えてください。その前後のコンソール出力は、正常に印刷されます。

編集:コードを次のように変更しました:

angular.toJson(hallabolo) は次のように出力{}
します:
1. JSON.stringify(hallabolo)=='{}'// false を返します
2. Object.keys(hallabolo).length// 1 を返します
3. jQuery.isEmptyObject(hallabolo)// false を返します
4. angular.isObject(hallabolo)// true を返します

もちろんtype of 'undefined'、hallaboloはオブジェクトなのでnullなどは動作しません

0 投票する
1 に答える
192 参照

android - $localForage.setItem を使用すると、アプリが数秒間フリーズします

$localForage.setItem を使用して、データをイオン モバイル アプリにローカルに保存しています。データは約 7MB であり、setItem を使用するとアプリが数秒間フリーズします。

それを解決するためのアドバイスはありますか?

0 投票する
1 に答える
1779 参照

angularjs - LocalForage + Angular - 変更時にフォーム オブジェクト全体を自動的に保存する方法

名前の付いたスコープ変数がproductFormあり、その基になるモデルに変更が発生するたびに保存したいと思います(つまりproductForm.designer)

入力ごとではなく、フォームが関連付けられている製品のIDをキーにしたいと思います。私はこのようなことをやってみましたが、運がありませんでした:

私の見解は次のようになります

入力にバインドを追加local-forageすると、特定の入力がキーでproduct.designer保存されますが、フォーム全体が次のように保存される場合は、むしろ次のようになります。

key: someProductId, value: {product.designer: "foo", product.name: "bar"}

私が間違っていることはありますか?