如何设计 Web 应用以允许多个存储提供程序
How to design a web app to allow for multiple storage providers?
我有一个PhoneGap移动网络应用程序,它在iOS,Android和BlackBerry上使用存储(SQLite)。相同的代码适用于所有平台。但是,我还想使用相同的网络应用程序创建一个 Chrome 应用程序。我需要解耦代码的存储部分,因为 Chrome 的存储 API 完全不同。
我的想法是创建一个单一的存储API接口,Web应用程序将使用该接口访问PhoneGap存储和Chrome存储。
是可以使用它们的已知模式,还是已经这样做的 javscript API?我的设计思路是否正确,或者有更好的方法吗?
谢谢你的时间!
您可以使用Chrome Cordova插件进行chrome.storage.local API,该插件适用于IOS和Android中的Cordova应用程序以及桌面上的Chrome应用程序。您可以在此处找到更多信息:https://github.com/MobileChromeApps/mobile-chrome-apps/blob/master/docs/APIStatus.mdhttps://github.com/MobileChromeApps/mobile-chrome-apps
> Sriram 谈到了一种不同的方法,这种方法可能会使你对抽象接口的需求无效,这是你应该首先考虑的。我会回答你的直接问题。
您的设计思想似乎合理而有效。这在Javascript中是很有可能和容易的 - 比其他语言更容易 - 但对我来说总是不安全。
Javascript 不是静态类型的。这意味着您可以使用抽象接口,但不需要在任何地方声明/定义它。只要具体的实现实现了所有正确的功能,你就没问题。
作为一个具体的例子,你可以做:
主文件:
var gStorage = null
initStorage();
gStorage.load();
....
gStorage.save();
应用存储实现:
var gAppStorage = {};
gAppStorage.load = function() {
...
}
gAppStorage.save = function() {
...
}
function initStorage() {
gStorage = gAppStorage;
}
对于您想要的任何其他存储提供商也是如此。然后,您只需包含要在应用程序中使用的提供程序的 js,它应该可以正常工作。
Javascript非常灵活,并且有无数种排列来做到这一点。这只是你可以走的一种方式。
- 如何在变量中存储多个模式参数并在 JavaScript 中打印该变量的值
- 使用 JavaScript 在本地存储中存储多个 ID
- 存储多个Json对象,然后对其进行排序
- 如何在一维数组中存储 3 个随机数,然后在 Javascript 中收到警报
- 在Javascript数组或一个对象中存储多个数据所需的Tweak
- 使用纯js在cookie中存储多个值
- 会话存储:如何存储多个对象
- 如何在单击一个按钮时存储多个值
- 如何存储多个连接的路点
- JavaScript:在一个数组中存储多个变量
- 如何在数组中存储多个值
- Jquery data() 存储多个值
- 如何在一个 Javascript 对象中存储多个数据表
- HTML5 本地存储 - 多个删除项问题
- 如何使用 Node.JS 在哈希表中为每个键存储多个值
- 用于存储多个配置对象的模式
- 单击时在localStorage中存储多个值
- 如何使用本地存储来存储多个复选框
- 如何在PHP中存储多个流套接字资源
- 如何使用javascript在cookie中存储多个值