IDBLocaleAwareKeyRange - 具有区域设置感知排序的 IDBKeyRange
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
IDBLocaleAwareKeyRange
是 IndexedDB API 的接口,是 Firefox 特有的 IDBKeyRange
版本 - 它以完全相同的方式运行,并且具有相同的属性和方法,但是当原始索引在创建时指定了 locale
值时(参见 createIndex()
的 optionalParameters),用于 IDBIndex
对象 - 也就是说,它启用了区域设置感知排序。
方法
此接口继承其父接口 IDBKeyRange
的所有方法 。
属性
此接口继承其父接口 IDBKeyRange
的所有属性。
但请记住,IDBLocaleAwareKeyRange
有自己的 IDBKeyRange.bound
实现。这是因为当你使用 bound()
时,它会检查下限 < 上限,如果不是这样则抛出异常。对于语言环境感知索引,< 取决于语言环境,例如立陶宛语 Y 在 I 和 K 之间的排序。IDBKeyRange
和 IDBLocaleAwareKeyRange
之间的唯一区别是后者不执行上述检查。
在处理区域设置感知索引时,开发人员应始终使用 IDBLocaleAwareKeyRange
。
实例
function displayData() {
var keyRangeValue = IDBLocaleAwareKeyRange.bound("A", "F");
var transaction = db.transaction(['fThings'], 'readonly');
var objectStore = transaction.objectStore('fThings');
var myIndex = objectStore.index('lName');
myIndex.openCursor(keyRangeValue).onsuccess = function(event) {
var cursor = event.target.result;
if(cursor) {
var tableRow = document.createElement('tr');
tableRow.innerHTML = '<td>' + cursor.value.id + '</td>'
+ '<td>' + cursor.value.lName + '</td>'
+ '<td>' + cursor.value.fName + '</td>'
+ '<td>' + cursor.value.jTitle + '</td>'
+ '<td>' + cursor.value.company + '</td>'
+ '<td>' + cursor.value.eMail + '</td>'
+ '<td>' + cursor.value.phone + '</td>'
+ '<td>' + cursor.value.age + '</td>';
tableEntry.appendChild(tableRow);
cursor.continue();
} else {
console.log('所有的条目都显示出来了。');
}
};
};
规范
目前不是任何规范的一部分。
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 不支持 | 未知 | 43 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 不支持 | 不支持 | 未知 | 43 | 未知 | 不支持 | 不支持 |
相关链接
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置一系列键:
IDBKeyRange
- 检索并更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考实例:To-do 通知 (在线查看实例。)