2017-09-20 11 views
0

最近、ChromeがChrome 57以降のバックグラウンドタブプロセスを絞り込むことを読んできました(here)。私はChromium 55を実行しており、タブにフォーカスがないときにindexeddbのクエリがはるかに遅いペースで実行されていることに気付きました。Indexeddbは非アクティブなタブでChromiumのOpenCursorを抑制していますか?

例えば、私が持っている:

return openIndexedDB(this) 
    .push(function (db) { 
    return new RSVP.Promise(function (resolve, reject) { 
     var tx = openTransaction(db, ["metadata"], "readonly"); 
     if (options.include_docs === true) { 
     handleCursor(tx.objectStore("metadata").index("_id").openCursor(), 
      pushIncludedMetadata, resolve, reject); 
     } else { 
     handleCursor(tx.objectStore("metadata").index("_id") 
         .openKeyCursor(), pushMetadata, resolve, reject); 
     } 
    }); 
    }) 
    .push(function() { 
    return result_list; 
    }); 
}; 

handleCursorされた状態で:

function handleCursor(request, callback, resolve, reject) { 
    request.onerror = function (error) { 
     if (request.transaction) { 
     request.transaction.abort(); 
     } 
     reject(error); 
    }; 

    request.onsuccess = function (evt) { 
     var cursor = evt.target.result; 
     if (cursor) { 
     // XXX Wait for result 
     console.log("waiting"); 
     try { 
      console.log("done"); 
      callback(cursor); 
     } catch (error) { 
      reject(error); 
     } 

     // continue to next iteration 
     cursor["continue"](); 
     } else { 
     resolve(); 
     } 
    }; 
    } 

私のIndexedDBデータベースは約60の記録(JSON、各< 1K)を持っています。アクティブなブラウザのタブでそれらをループするのはほとんど瞬間ですが、非アクティブなタブではこれが突然2分で完了します。

質問:これは、ブラウザのベンダーのバックグラウンドタブプロセスの処理に関連していますか?もしそうなら、無効にするフラグ/読み込み元を指定しますか?

+0

これは、1%を超えるCPUを使用している必要があります。これは、JSONの60レコードで高いと思われます。 '/ XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX – Keith

答えて

1

Chrome 55では、バックグラウンドタブ調整とインデックス付きDBがどのようにやりとりされたのかに関する問題がありました。https://bugs.chromium.org/p/chromium/issues/detail?id=675372 - 短いバージョン:イベント配信は1秒に1回に制限されていましたので、カーソルは非常にゆっくりと繰り返します。

56以降では、トランザクションがバックグラウンドタブで開始されると、インデックス付きDBイベントは抑制されません。

+0

ああリンクをありがとうございました。私が探していたものと私が経験してきたもの。それは私にバックグラウンドタブのクエリを減らすように強制したので、全体的にプラスの副作用... – frequent

関連する問題