15

IndexedDB は、非同期トランザクションが進行中の複数のタブをどのように処理しますか? トランザクションは、関連するすべてのオブジェクト ストアを完全にロックしますか? 1 つのタブがデータの一部を処理している場合、別のタブが同じことをしていないことをどのように保証できますか?

4

1 に答える 1

13

IndexedDB の仕様では、「複数の READ_WRITE トランザクションが同じオブジェクト ストアにアクセスしようとしている場合 (つまり、スコープが重複している場合)、最初に作成されたトランザクションは、オブジェクト ストアに最初にアクセスするトランザクションでなければならない」と規定されています。前の段落で、これは、トランザクションが終了するまでオブジェクト ストアにアクセスできる唯一のトランザクションであることも意味します。」

つまり、トランザクションが READ_WRITE モードの場合、トランザクションが終了するまで、objectStore は他の READ_WRITE トランザクションに対してロックされます。

ここから IndexedDB トランザクション モードの詳細を読むことができます - http://www.w3.org/TR/IndexedDB/#dfn-mode

ギル

于 2012-05-09T07:04:39.883 に答える