驱动 API
优质
小牛编辑
131浏览
2023-12-01
从1.1版开始,就可以为 localForage 自定义驱动了。
defineDriver
// 此处为驱动的实现
var myCustomDriver = {
_driver: 'customDriverUniqueName',
_initStorage: function(options) {
// 在此处自定义实现...
},
clear: function(callback) {
// 在此处自定义实现...
},
getItem: function(key, callback) {
// 在此处自定义实现...
},
key: function(n, callback) {
// 在此处自定义实现...
},
keys: function(callback) {
// 在此处自定义实现...
},
length: function(callback) {
// 在此处自定义实现...
},
removeItem: function(key, callback) {
// 在此处自定义实现...
},
setItem: function(key, value, callback) {
// 在此处自定义实现...
}
}
// 为 localForage 添加驱动。
localforage.defineDriver(myCustomDriver);
你需要确保接受一个 callback
参数,并且将同样的几个参数传递给回调函数,类似默认驱动那样。同时你还需要 resolve 或 reject Promise。通过 默认驱动 可了解如何实现自定义的驱动。
自定义实现可包含一个 _support
属性,该属性为布尔值(true
/ false
) ,或者返回一个 Promise
,该 Promise
的结果为布尔值。如果省略 _support
,则默认值是 true
。你用它来标识当前的浏览器支持你自定义的驱动。
driver
localforage.driver();
// "asyncStorage"
driver()
返回正在使用的驱动的名称,在异步的驱动初始化过程中(详情参阅 ready
)为 null
,若初始化未能找到可用的驱动也为 null
。
ready
localforage.ready().then(function() {
// 当 localforage 将指定驱动初始化完成时,此处代码运行
console.log(localforage.driver()); // LocalStorage
}).catch(function (e) {
console.log(e); // `No available storage method found.`
// 当没有可用的驱动时,`ready()` 将会失败
});
ready()
提供了一种方法来确定异步驱动程序初始化过程是否已完成,localForage 会对所有数据 API 方法的调用进行缓冲排序。当我们需要知道 localForage 当前正在使用的是哪一个驱动时,此方法会非常有用。
supports
localforage.supports(localforage.INDEXEDDB);
// true
supports(driverName)
返回一个布尔值,表示浏览器是否支持 driverName
。
默认驱动名称可参阅 setDriver
。