2016-10-19 2 views
0

問題が発生しています。
インデックス付きdbをオープンしようとすると、コールバックのどれも起動されません。私たちは、次の手順を行っている

1.open次の手順を使用して使用してデータベース:コールバックのどれがトリガされていない
インデックス付きdb openはコールバックをトリガーしません

request = indexedDB.open(name, 10); 
request.onerror = onError; 
request.onsuccess = onSuccess; 
request.onupgradeneeded = onUpgradeNeeded; 
request.onblocked=onBlocked;<br> 

2.notice。
3.open chrome:// indexeddb-internals /#そして、以前の削除データベースが保留中であることを示します。

答えて

1

データベースに接続している別のタブが開いている可能性があります。

オープン/削除要求がキューに入ります。バージョンを指定しない(または現在のデータベースと同じバージョンを指定する)オープン要求は、キューの先頭に到達すると直ちに処理できます。上位バージョンのオープン要求またはキューの前面にある削除要求は、他のすべての接続がクローズするのを待つ必要があります。彼らが "versionchange"を受け取った直後に閉じると、要求は進む。そうでない場合、要求は「ブロックされた」イベントを取得し、接続が閉じるまで待機します。彼らはキューの先頭に到達するまでただ待っていると、処理されるか、またはあなたがそこにいたことを報告ステップ3では

を「ブロック」を取得いずれか - キュー内の他の要求がイベントを取得しないことを

注意以前の削除要求が保留中です。それは何かでブロックされていることを示します。おそらく別の接続がぶら下がっているでしょう。したがって、削除要求はキューの前面にあり、ブロックされており、開いている要求(バージョン10の場合)はキューの後ろにあります(注記しています)。キューの先頭

+0

インデックスされたdbを削除せずに削除する方法はありますか? –

+0

アップグレード中に、すべてのオブジェクトストアを列挙して削除できます。 (もちろん、オープンな接続でもアップグレードはブロックされるでしょう) –

+0

接続を "versionchange"イベントを監視し、適切に反応させる方法のガイダンスについては、他の回答を見ることをお勧めします。 http://stackoverflow.com/questions/40032008/how-should-an-app-react-when-indexeddb-is-blocked –

関連する問題