错误的IndexedDB实现的功能检测?

时间:2014-11-05 23:41:17

标签: javascript ios internet-explorer safari indexeddb

我有一个基于IndexedDB的应用程序。以前在IndexedDB上进行特征检测很容易 - 只需查看是否定义了window.indexedDB。然而,最近有两件事发生了变化:

  1. Safari发布了非常破碎的IndexedDB支持
  2. 我重写了部分应用程序以使用IE不支持的功能(复合索引和多项索引)
  3. 所以现在我需要一些更精细的功能检测来向Safari和IE用户显示合理的错误信息。

    我可以想象,测试IE缺失的功能并不会太困难,因为至少问题是记录在案的。但是对于Safari来说,存在多个错误,我不知道它在任何地方的记录有多好。哎呀,我甚至没有任何可以运行Safari的Apple设备。如果将来某些其他浏览器发布一个错误的IndexedDB实现会怎么样呢?

    之前有没有人想过或解决过这些问题?在我看来应该有一些标准的IndexedDB特征检测库,但我找不到任何东西(Modernizr的IndexedDB东西似乎不够用)。

1 个答案:

答案 0 :(得分:2)

对于IE,您可以检查:IDBKeyRange.only([1]),这会在IE上引发异常DataError

对于Safari,我做了一些useragent嗅探,因为我找不到一种方法来检查,(我本来可以创建一个dummyDb并检查插入是否会删除我的其他值)但这将是异步使一切都有点更难)..