【发布时间】:2014-01-20 10:40:59
【问题描述】:
我是 javascript 新手,我正在使用 IndexedDB 将数据存储在客户端系统上。为了扩展速度和各种其他功能,我正在尝试将各种数据从图像存储到文档。每当我尝试存储任何类型的数据时,在本地系统中占用的空间都是实际文件大小的 4 倍。
比如说。 我使用循环存储 10 MB 图像文件 10 次。生成的 DB 大小为 400 MB 而不是 100 MB。当然,它与浏览器不同。如果我尝试将 1 MB 文档存储 100 次,则 DB 的大小为 472 MB 而不是 100 MB。
我面临的另一个问题是,每当我删除记录或清空 ObjectStore 时,都会触发 Onsuccess 事件。并且将来对已删除记录的任何引用都显示没有数据,但数据库占用的内存保持不变。 例如: 当我尝试将记录存储到总共 1 GB 时,数据库占用 4 GB,并且在删除操作结束时,IndexedDB 文件夹仍将大小显示为 4 GB。在 Chrome 中更糟糕的是,如果我尝试删除或读取数据,那么它会占用比现在更多的内存。请给我一个解决方案。
【问题讨论】:
-
你如何测量数据库的大小?
-
通过检查Chrome的IndexedDB文件夹中.ldb文件的文件大小。
-
这些是指向 Html 和脚本文件的链接。如果我犯了任何错误,请告诉我。 2shared.com/document/c7_yGmrh/testpage.html2shared.com/document/xNPD7AcU/testscript.html