최근 Chrome에서 Chrome 57 이후의 백그라운드 탭 프로세스를 조정할 것이라고 (Waddy : here) 읽었습니다. 저는 Chromium 55를 실행 중이며 탭에 포커스가 없을 때 indexeddb 쿼리가 훨씬 느리게 실행되고 있음을 확인했습니다.Indexeddb가 비활성 인 탭에서 Chromium의 스로틀되고 있습니까?
예를 들어, 내가 가진 :
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();
}
};
}
내 색인화 된 데이터베이스는 약 60 기록이있다 (JSON을 각 < 1K). 액티브 브라우저 탭에서 루프를 돌리는 것은 거의 순간적이며, 비활성 탭에서는 갑자기 2 분 이상이 소요됩니다.
질문 : 브라우저 공급 업체의 백그라운드 탭 프로세스 속도 저하와 관련이 있습니까? 그렇다면 비활성화/소스를 읽을 플래그가 있습니까?
은 다음 JSON의 60 개 레코드에 대한 높은 것보다 1 %의 CPU를 복용해야됩니다. result' 기다립니다 // XXX, 당신은이 부분을 놓친'위의 코드를 보면, 코드는 여기에 무엇을합니까? – Keith