indexedDB在iOS上性能不佳?

当我从indexedDB读取数据(在我的情况下超过3000个项目)时,它的工作速度很慢。 我使用的浏览器并不重要。 我在Chrome和Safari上获得了相同的结果。 我用iPad 3进行测试。 在这个问题的范围内,我发现了以下有趣的事情:

  1. 当我在桌面版Chrome上打开我的客户端应用程序时,它以适当的方式工作

  2. 如果我在Safari中使用WebSQL它看起来很好但是当我在Safari中使用indexedDB时它工作了SLOW

  3. 当我们在iPad 3上使用Chrome时,它的工作也很 。 (因为,Chrome使用indexedDB)

WebSQL已被弃用,根据我的调查,indexedDB在iOS上有一些瓶颈(在我的情况下是iOS 9.3.5和iPad 3)。 对我来说最好的方法是为Chrome找到解决方案(在iOS上)。 请写下您的想法和提示。 谢谢!

更新:下面描述的测试描述了Safari中的问题,该问题似乎在10.12.4 beta中得到修复。

这里有更多的数据,但基本上我看到你看到的相同的东西。 我使用bulkPut()将不同数量的记录bulkPut()干净的IndexedDB。 我是在XCode模拟器中运行的Chrome,Safari和iOS 10.2上完成的。 这三个都在同一台Macbook Pro上运行。 我正在使用Dexie.js包装器,因此有可能这是由于包装器而不是由于IndexedDB本身。

我看到的是iOS和Safari的每个记录写入时间都越来越差,我试图写的记录越多,而Chrome的每个记录写入时间几乎保持不变,无论我试写的记录数量是多少。

此表显示每个浏览器中的记录/ ms。

 records Chrome Safari ios Simulator 100 5.26 0.63 1.54 500 4.63 0.92 0.62 1000 5.26 0.71 0.61 2000 4.23 0.09 0.16 5000 4.21 0.02 0.02 

然后我用put()而不是bulkPut()尝试了相同的记录。 对于少量记录,以及始终在Chrome上,这要慢得多。 但对于Safari浏览器上的大量记录,这更快:

 records Chrome Safari ios Simulator 100 0.45 0.08 0.40 500 0.46 0.14 0.35 1000 0.51 0.20 0.36 2000 0.54 0.21 0.39 5000 0.38 0.19 0.60 

如果这是正确的(我有点怀疑它是在所有情况下,因为它没有任何意义),那么我想最好的策略是在Chrome上使用bulkPut,但在Safari上使用bulkPut in no no超过1000条记录? 看起来很糟糕。 我很想知道是否有其他人有关于此建议或其他建议的更多信息。