优化:从IndexedDB获取特定值(而不是更多)

问题描述:

我正在做的是在客户端上保存和检索大量图像。优化:从IndexedDB获取特定值(而不是更多)

(现在IndexedDB的似乎是大材小用这个简单的工作,但因为它是没有限制(如localStorage的)唯一的跨浏览器的解决方案,我不得不使用它,而且它的工作原理)

这是我的数据库看起来像: (更具体地说,我的分贝的唯一对象)

#键(timeID)|值

0 | 812378123 | {data:¨¨¨,tnData:¨...¨,timeID:812378123}

1 | 912378123 | {数据:¨....¨,tnData:¨...¨,TIMEID:912378123}

2 ....

KEYVALUE是一个独特的TIMEID,用数据包括图像为文本和tnData包含此图片文字 的缩略图(当canvas.toBlob()好了,我会切换到)

要检索图片的话就用store.get(ID)

现在这一切作品。

但是现在我只想加载缩略图(¨tnData¨) - 但不是真正的图像(¨数据可能很大)。

所以我希望有类似store.get(ID,¨tnData¨)...

但我没有发现它,那么远。 有没有人知道这样做的简单方法,而不必重做我的分贝?

在此先感谢...和抱歉,如果我不是在正确的地方或打破一些规则...第一个问题对我来说)

有谁知道这样做的一个简单的方法这,而不必重做我的分贝?

不,IndexedDB不让你只返回一部分对象。

虽然重新制作你的数据库可能不会太难。您可以将其分成两个对象存储区,一个用于缩略图,另一个用于整个图像。然后你可以查询具体的你想要的。

如果你经常同时获得两个基准,你将不得不做一些基准测试,看看它是否真的更快地分解它们,或者它可能有意义复制缩略图(一个对象存储像你现在一样,只有一个缩略图)。

+0

嗯,这是一个耻辱。但是,谢谢你的回答以及如何返工的提示......尽管我已经准备好了;) – Hutzlibu

+0

不幸的是,这对我来说意味着一些真正的工作,因为数据库使用起来有点深,存储和拿到钥匙等......但是,抱怨不会帮助,所以我最好去... – Hutzlibu

+0

但是有一些技巧...甚至没有入侵,毕竟并没有这么辛苦,我完成了.. 。 – Hutzlibu