4

Chrome の無制限のストレージを使用する Chrome 拡張機能を作成しようとしています。現在、次のようにストレージから取得しています。

chrome.storage.local.get(null, function (items) {  
    return items;  
}  

そして、次のようにストレージに保存します。

chrome.storage.local.set(items);

私の問題は、この場合「アイテム」は連想配列であり、この配列に複数の値を同時に追加できるようにしたいということです。get メソッドは非同期であるため、ストレージから配列を取得し、キーと値のペアを追加してから元に戻そうとする 2 つの異なるプロセスで、両方が保存されることを保証できません。さらに悪いことに、これを行うと、同時プロセスが十分にある場合に拡張機能がクラッシュするように見えます。

chrome.storage を使用するより良い方法はありますか? または、何らかのキューイング システムを実装する必要がありますか? 以前は非同期の側面を持たない localStorage を使用していましたが、ストレージの最大容量を超えていたため、無制限のストレージを使用するように切り替えようとしています。

4

2 に答える 2

0

私はあなたが考えているキューイングシステムを進めます。両方のプロセスがグローバルオブジェクトにアクセスできる場合は、そのオブジェクトに書き込みを管理させ、アプリケーションの残りの部分に、の代わりにそのオブジェクトを使用して書き込むようにしますchrome.local.storage.set(...)

于 2013-01-27T01:17:29.277 に答える
0

2 つの無制限ストレージ オプション

両方とも非同期であり、パフォーマンスの面で優れています。複数setget操作の同期を達成することが、これを乗り越える方法だと思います。

于 2013-01-27T06:32:10.543 に答える