【问题标题】:Electron desktop app with online server and database?带有在线服务器和数据库的电子桌面应用程序?
【发布时间】:2018-06-14 00:13:50
【问题描述】:

我正在使用 electron 开发桌面应用程序,并且正在考虑使用在线存储来存储数据。我想对这种方法有所了解,因为我无法从谷歌搜索中找到可靠的答案。

方法1.电子应用程序(前端)+ php(例如从godaddy购买带有域的托管包,例如:www.mysite.com)

通过这种方法,我计划在 php 中创建 api 调用来执行基本的 CRUD。

这是一个好方法吗? 这会影响速度/加载时间吗?

对于这种情况有更好的方法吗? 非常感谢您的帮助。

【问题讨论】:

    标签: php electron desktop-application


    【解决方案1】:

    嗯,这不是一个简单的话题。您的解决方案可能会奏效:您的 Electron 应用程序向您的服务器询问数据并将数据存储到其中。无论如何,最好的解决方案取决于您的应用程序。

    您必须问自己的最重要的几点是:

    • 您需要多久访问一次服务器?
    • 您的用户可以在没有来自服务器的数据的情况下工作吗?
    • 在您的服务器上读取和存储数据需要多长时间? (如果您存储一些 kb 或许多 gb 的数据,情况就不同了)
    • 在线存储的数据必须与其他用户共享,否则每个用户都可以访问自己的数据?

    如果所有信息都存储在您的服务器中,您的启动必须等待请求完成,但您可以显示加载程序或类似的东西来减少等待。

    在我看来,您有很多选择,从最简单(最慢)到最复杂(但可以缓解网络延迟):

    1. 对服务器的简单 AJAX 请求:正如您所描述的,您将对服务器执行一些 HTTP 请求并读取和写入要在应用程序上显示的数据。您的用户将不得不等待请求完成。向他们展示一些加载动画以减少等待。
    2. 有一些解决方案可以将数据本地保存到您的电子安装中,然后在线同步它们,请查看PuchDB 以获取示例
    3. 最近我在看GraphQL。 GraphQL 是一个用于查询数据的 API。这并不容易,但它有一些有趣的功能,它有一个internal cache,并且已经为optimistic update 进行了研究。您立即更新您的应用程序,认为您的 POST 会很好,然后如果出现问题,您会相应地更新它。

    我还想建议您尝试一些解决方案即服务。你还没有服务器,你将不得不打开一个新的合同,所以你为什么不检查一些专门的服务,比如Firebase? Google Firebase 实时数据库允许您使用 javascript(项目中只涉及一种语言)工作,自动在线同步数据并在设备之间同步数据,而无需编写任何网络服务。我刚刚玩过它的一些原型,但它看起来很有趣而且很便宜。它还有一个免费计划,足以满足许多用户的需求。

    请记住,如果您的用户只能访问他们的数据,那么最快、最简单的解决方案是在您的电子应用程序中使用数据库。 sqlite 数据库,IndexDB 数据库,甚至序列化为 JSON,然后将所有内容存储在本地存储中(如果您的数据符合大小限制)。

    希望对你有帮助

    【讨论】:

    • 感谢@wezzy,感谢您宝贵的时间和解释。 Firebase 是一个很好的建议,我有在我的移动应用程序中使用 firebase 的经验。 firebase 的问题是数据库查询。由于此桌面应用程序将需要多个查询参数,并且 firebase 数据结构不像 Sql。这就是我放弃它的原因。您认为使用 firebase 或任何其他 SaaS 应该比传统的 cpanel 服务器更快吗?
    • 好吧,这取决于 :D 如果您的用例与他们的数据模型非常吻合,那么它们确实可以节省大量时间。您必须考虑到您必须存储自己的数据以及用户、授权等一些信息,Firebase 可以在这方面为您提供帮助。
    猜你喜欢
    • 2016-10-24
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多