2016-06-07 38 views
1

我有一个离线的web应用程序的PC与JavaScript和我期待添加一个数据库。问题在于它需要跨多台计算机持续存储数据(通过USB)。所以我想找到一种方法将这些数据存储在USB上而不是电脑的硬盘上。离线便携式网络应用程序,Javascript。如何获得跨计算机的持久数据库?

我已研究过诸如lokijs之类的解决方案,虽然lokijs具有持久性存储,但存储在本地存储或IndexedDB中。这意味着它通过浏览器存储在计算机上。解决这个问题的一种方式是以某种方式用JavaScript读取/写入文件,或者将数据库文件保存在与其他文件相同的目录中(以便通过USB进行移植)。有没有办法做到这一点?据我所知,没有办法做到这一点。

另一个解决方案是下载一个portable version of Chrome,并创建一个.bat文件,以确保Web应用程序将打开使用便携式Chrome浏览器。我认为(不太确定)便携式Chrome会在会话之间保留本地存储/ IndexedDB数据。但是,这种方法体积庞大,我宁愿不依赖于此。

那么,有没有办法解决这个问题的方法吗?还是有另一个JavaScript数据库可以在本地存储和检索数据库,以通过USB在多台计算机上实现持久数据存储。

感谢您的阅读,我会很感激任何答案。

回答

0

基本上,您希望使用Web技术构建的便携式胖客户端应用程序。有多种解决方案。我建议使用NodeWebKit或类似的东西(JavaFX也具有JavaScript的Web渲染功能)。

+0

感谢您的回答和建议。如果你不介意,你对[Electron](http://electron.atom.io/)和你提到的[NW.js](http://nwjs.io/)有什么看法? –

+0

我真的不知道它,但它绝对值得一看。 – meskobalazs

1

JavaScript没有访问您的磁盘 - 出于安全原因。您无法使用Web应用程序读取/写入本地驱动器,否则恶意软件传播起来会更容易。这就是为什么像lokijs这样的解决方案使用浏览器内存储的原因。如果你想要一个可以从USB运行的便携式存储的离线应用程序,我会用一种不同的技术/编程语言来重写。如果它需要跨平台的话,Java可能是你最好的选择。

+0

感谢您的回答和建议。当你和meskobalazs建议时,我一定会研究其他技术。 –