电子桌面应用程序与在线服务器和数据库?

时间:2018-01-04 09:33:47

标签: php electron desktop-application

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

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

使用这种方法我打算在php中创建api调用来执行基本的CRUD。

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

在我看来,你有很多选择,从最简单(也是最慢)到最复杂(但可以缓解网络滞后):

  1. 对服务器的简单AJAX请求:如您所述,您将对服务器执行一些HTTP请求,并读取和写入要在应用程序上显示的数据。您的用户必须等待请求完成。向他们展示一些加载动画以减轻等待。
  2. 有一些解决方案可以将数据本地保存到您的电子设备中,然后在线同步,请检查PuchDB以获取示例
  3. 最近我在看GraphQL。 GraphQL是用于查询数据的API。它不是那么容易,但它有一些有趣的功能,它有一个internal cache,它已经研究过optimistic update。您立即更新您的应用程序,认为您的POST很好,如果出现问题,您可以相应地更新它。
  4. 我还建议您尝试一些解决方案作为服务。您还没有服务器,您必须打开一份新合同,为什么不检查一些专用服务,如Firebase? Google Firebase实时数据库允许您使用javascript(只是项目中涉及的一种语言),在线自动和在设备之间同步您的数据,而无需编写任何Web服务。我只是玩了一些原型,但它看起来非常有趣而且很便宜。它还有一个免费的计划,足以让很多用户使用。

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

    希望这有帮助

答案 1 :(得分:0)

通过为运行时提供丰富的本机(操作系统)API,Electron使您能够使用纯 JavaScript 创建桌面应用程序。您可以将其视为 Node.js 运行时的变体,该运行时专注于桌面应用程序而非Web服务器。

这并不意味着Electron是一个绑定到图形用户界面(GUI)库的JavaScript。相反,Electron使用网页作为其GUI,因此您也可以将其视为由JavaScript控制的最小Chromium浏览器。

因此,为了获得更好的性能,您可以使用Angular js或任何其他javascript框架

你可以使用Node.js和angular js而不是php,因为node.js会比php更快

参考:https://electronjs.org/docs/tutorial/quick-start

相关问题