在我的 Angular 应用程序中,我需要创建一个持久性服务接口,该接口基于浏览器中可用的持久性机制调用具体实现。我正在考虑使用一个通用的 storageService 来实现这个,它调用一个了解存储机制的特定 storageService 。
例如,通用的 storageService 将提供以下接口:
angular
.module('app.storage')
.factory('storageService', storageService);
function storageService() {
return {
saveItem: saveItem,
getItem: getItem
}
...
}
storageService会有多种实现方式,例如localStorageService、indexedDbStorageService、webSqlStorageService。
基于浏览器功能动态注入具体存储服务的最佳方法是什么。例如,
if (isWebSqlAvailable()) {
// inject webSqlStorageService
}
else if (isIndexedDbAvailable() {
// inject indexedDbStorageService
}
else if (isLocalStorageAvailable() {
// inject localStorageService
}