【问题标题】:IndexedDB in IE11/Edge: why is objStore.autoIncrement undefined?IE11/Edge 中的 IndexedDB:为什么 objStore.autoIncrement 未定义?
【发布时间】:2016-02-28 11:52:37
【问题描述】:

我正在尝试通过在 SauceLabs 中运行它们来修复 Internet Explorer 中 sklad 库的失败测试。不幸的是,我发现对象存储的 autoIncrement 属性始终未定义,但我找不到任何证据表明该属性在 IE 中已损坏。还是我错过了什么?

var sDBName = "ADatabase" + Date.now();
var nDBVersion = 1.0;
var req = indexedDB.open( sDBName, nDBVersion );
req.onsuccess = function(evt) {
  var tr = evt.target.result.transaction(['MyObjectStore'], 'readwrite'); // reaonly
  tr.oncomplete = function () {
    console.log('transaction completed')
  }

  var objStore = tr.objectStore('MyObjectStore');
  console.log('objStore', objStore);

  // expect to get true, but it's undefined
  console.log('objStore.autoIncrement', objStore.autoIncrement);

  console.log('objStore.keyPath', objStore.keyPath);
}

req.onupgradeneeded = function(evt) {
  console.log('upgradeneeded')
  var hDBHandle = evt.target.result;
  var sStoreName = "MyObjectStore";
  var oDBOptions = { keyPath : "RecordID", autoIncrement : true };
  var oStore = hDBHandle.createObjectStore( sStoreName, oDBOptions );

  var oIxOptions = { unique: false, multientry: false };
  oStore.createIndex( "SortByTitle", "DeckTitle", oIxOptions );
  oStore.createIndex( "SortByDesc", "Description", oIxOptions );
  console.log('upgraded')
}

【问题讨论】:

  • 我刚刚在 MS 错误跟踪器中发现了同样的问题,但它已于 2012 年关闭,错误应该已在 IE10 中修复:connect.microsoft.com/IE/Feedback/Details/772726
  • 是的,似乎是一个错误。功能在那里,用于检查商店属性的属性没有公开。
  • @JoshuaBell 唯一可悲的是没有人重新打开 Microsoft tracker 中的错误

标签: html internet-explorer-11 indexeddb saucelabs


【解决方案1】:

坏消息:这是一个错误,已在 Microsoft 错误跟踪器中关闭:https://connect.microsoft.com/IE/Feedback/Details/772726

好消息:你可以像我一样为这个属性编写一个 polyfill (link)。这个想法是检查 autoIncrement 是否未定义。如果未定义,您应该启动一个读/写事务,将数据添加到对象存储。根据响应/异常,您可以了解此对象存储是否具有 true 或 false autoIncrement 字段。当然你应该在之后回滚这个事务。

如果您不想使用所有这些东西,我为您编写了一个库:link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多