在不支持的浏览器中替代IndexedDB? Safari / iOS Saf-Chrome

时间:2013-11-20 18:22:18

标签: javascript ios google-chrome safari indexeddb

我有一个使用IndexedDB的工作示例,非常适合我的桌面Chrome。尽管如此,我的主要目标是为iOS设备(Chrome-Safari)开发,但目前还没有此API。 我该怎么办?

我见过这个Polyfill:http://nparashuram.com/IndexedDBShim/。但是,我用我的iPod Touch第五代进行了测试,不知怎的,第19次测试不起作用......

我应该使用已弃用的WebSQL吗?

我喜欢Polyfill的想法,但它不适合我...

对于所有不支持的浏览器,是否有计划在未来支持IndexedDB?

谢谢!

3 个答案:

答案 0 :(得分:17)

Here is another similar polyfill you can try,但在我的(尽管有限的)经验中,两种填充物都是错误/不完整的。他们在GitHub上也有很多关于报告问题的人的未解决问题。当我测试其中一个(我忘了哪一个)时,它比原始的IndexedDB慢得多。

也许有可能创造一个像样的polyfill,但目前似乎没有做到这一点。

  

我应该使用已弃用的WebSQL吗?

WebSQL的问题在于IE或Firefox永远不会支持它。如果您只针对移动浏览器,那么至少在Firefox OS或Windows Phone占据重要市场份额之前,您可能会使用WebSQL。

  

对于所有不支持的浏览器,是否有计划在未来支持IndexedDB?

我们要清楚。你问的是Apple,因为其他人都在最新的浏览器中支持IndexedDB(iOS Chrome使用Apple的渲染引擎,因为Apple不会让他们做任何事情)。

Apple不仅不支持IndexedDB,他们还没有公开谈论它(据我所知......我做了相当多的搜索)。这看起来很奇怪。所以我可以说,没有人知道Apple是否计划支持IndexedDB。我的阴谋理论家认为他们可能试图破坏HTML5应用程序以强迫人们编写本机应用程序,但这纯粹是猜测。

总的来说,这让开发人员处于非常糟糕的境地。没有好的跨平台解决方案。我建议你向Apple抱怨它。这就是我所做的,并且我已经要求想要在iOS上使用我的基于IndexedDB的应用程序的用户也这样做。仍然没有来自Apple的消息。

更新 - 现在支持iOS 8中的Indexeddb,如WWDC 2014所述 - 但不幸的是it's broken pretty badly

答案 1 :(得分:1)

看起来IndexedDB不能用作网络应用程序(固定在主屏幕上)。 在Safari中工作。

答案 2 :(得分:0)

NeDB 是 IndexedDB 的最佳替代品。它是一个 noSQL 数据库,具有像 MongoDB 一样的查询功能。用于浏览器的嵌入式持久数据库或内存数据库,100% JavaScript,无二进制依赖。 API 是 MongoDB 的一个子集,速度非常快。