我是javascript的新手,我正在使用IndexedDB在客户端System上存储数据。为了扩展速度和各种其他功能,我正在尝试将各种数据从图像存储到Document。每当我尝试存储任何类型的数据时,本地系统中占用的空间是实际文件大小的4倍。
比如说。 我使用循环存储10 MB图像文件10次。 DB的结果大小为400 MB而不是100 MB。它与浏览器的不同之处不同。如果我尝试将100 MB文档存储100次,那么DB的大小为472 MB而不是100 MB。
我面临的另一个问题是,每当我删除记录或清空ObjectStore时,都会触发Onsuccess事件。以后对删除的记录的任何引用都不显示数据,但DB占用的内存保持不变。 例如: 当我尝试将记录存储到总共1 GB时,DB占用4GB,并且在删除操作结束时,IndexedDB文件夹仍然将大小显示为4GB。在Chrome中,更糟糕的是,如果我尝试删除或读取数据,那么它占用的内存比现有的多。请给我一个解决方案。
答案 0 :(得分:0)
我删除了onupgradeneeded事件中的“createIndex”语句,并将数据库大小减小到实际的数据大小。
我在问题中说过的删除操作也正常。唯一的事情是,删除数据库或记录后,DB占用的空间不会立即释放,而是在插入新记录后执行。
但是我仍然不知道为什么createIndex语句给我带来了太多麻烦。