perf: use IDBObjectStore.clear (#208)

This commit is contained in:
Nolan Lawson 2021-08-13 09:55:10 -07:00 committed by GitHub
parent 13e6bcb068
commit ed0ffac1e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 15 deletions

View file

@ -8,7 +8,7 @@ import {
} from './constants'
import { transformEmojiData } from './utils/transformEmojiData'
import { extractTokens } from './utils/extractTokens'
import { getAllIDB, getAllKeysIDB, getIDB } from './idbUtil'
import { getAllIDB, getIDB } from './idbUtil'
import { findCommonMembers } from './utils/findCommonMembers'
import { normalizeTokens } from './utils/normalizeTokens'
@ -67,11 +67,10 @@ export async function loadData (db, emojiData, url, eTag) {
await dbPromise(db, [STORE_EMOJI, STORE_KEYVALUE], MODE_READWRITE, ([emojiStore, metaStore]) => {
let oldETag
let oldUrl
let oldKeys
let todo = 0
function checkFetched () {
if (++todo === 3) {
if (++todo === 2) { // 2 requests made
onFetched()
}
}
@ -82,9 +81,7 @@ export async function loadData (db, emojiData, url, eTag) {
return
}
// delete old data
for (const key of oldKeys) {
emojiStore.delete(key)
}
emojiStore.clear()
// insert new data
for (const data of transformedData) {
emojiStore.put(data)
@ -103,11 +100,6 @@ export async function loadData (db, emojiData, url, eTag) {
oldUrl = result
checkFetched()
})
getAllKeysIDB(emojiStore, undefined, result => {
oldKeys = result
checkFetched()
})
})
performance.measure('commitAllData', 'commitAllData')
} finally {

View file

@ -11,7 +11,3 @@ export function getIDB (store, key, cb) {
export function getAllIDB (store, key, cb) {
callStore(store, 'getAll', key, cb)
}
export function getAllKeysIDB (store, key, cb) {
callStore(store, 'getAllKeys', key, cb)
}