Настольное электронное приложение с онлайн-сервером и базой данных?

Я работаю над настольным приложением с электронным, и я рассматриваю онлайн-хранилище для хранения данных. Я хотел бы получить некоторое представление о подходе, так как я не мог найти надежные ответы из поиска Google.

Подход 1. электронное приложение (front end) + php (например, покупка хостинг-пакета у godaddy с доменом, например, www.mysite.com)

с этим подходом я планирую создавать вызовы API в php для выполнения основных CRUD.

это хороший способ?
повлияет ли это на скорость / время загрузки?

Есть ли лучшие способы для этой ситуации?
Заранее большое спасибо за помощь.

2

Решение

Ну, это не простая тема. Ваше решение может работать: ваше приложение Electron запрашивает данные на вашем сервере и сохраняет данные на нем. В любом случае, лучшее решение зависит от вашего приложения.

Наиболее важные моменты, которые вы должны задать себе:

  • Как часто вам нужно добраться до вашего сервера?
  • Ваши пользователи могут работать без данных с сервера?
  • Сколько времени занимает чтение и хранение данных на вашем сервере? (это отличается, если вы храните несколько КБ или много ГБ данных)
  • Данные, хранящиеся в Интернете, должны быть переданы другим пользователям, или каждый пользователь имеет доступ к своим собственным данным?

Если вся информация хранится на вашем сервере, ваш стартап должен ждать завершения запроса, но вы можете показать загрузчик или что-то подобное, чтобы уменьшить ожидание.

На мой взгляд, у вас есть много вариантов, от самого простого (и самого медленного) до самого сложного (но это уменьшает сетевую задержку):

  1. Простые AJAX-запросы к вашему серверу: как вы описали, вы будете выполнять некоторые HTTP-запросы к вашему серверу и читать и записывать данные, которые будут отображаться в вашем приложении. Вашему пользователю придется ждать завершения запросов. Покажите им некоторые анимации загрузки, чтобы смягчить ожидание.
  2. Существуют некоторые решения, которые сохраняют данные локально в вашей электронной установке, а затем синхронизируют их в Интернете. Проверьте PuchDB для примера
  3. Недавно я смотрю на GraphQL. GraphQL — это API для запроса ваших данных. Это не так просто, но у него есть некоторые интересные особенности, у него есть внутренний кеш и это уже изучено для оптимистичное обновление. Вы немедленно обновляете свое приложение, думая, что с POST все будет в порядке, а затем, если что-то пойдет не так, обновите его соответствующим образом.

Я также хотел бы предложить вам попробовать некоторые решения в качестве услуги. У вас еще нет сервера, и вам придется открыть новый контракт, так почему бы вам не проверить какой-либо выделенный сервис, такой как Firebase? База данных Google Firebase Realtime позволяет вам работать в javascript (только один из языков, участвующих в проекте), автоматически синхронизировать ваши данные онлайн и между устройствами без необходимости писать какой-либо веб-сервис. Я только что поиграл с ним за некоторые прототипы, но это выглядит очень интересно и дешево. У него также есть бесплатный план, которого достаточно для многих пользователей.

Имейте в виду, что если ваш пользователь имеет доступ только к своим данным, самое быстрое и простое решение — использовать базу данных внутри вашего электронного приложения. База данных sqlite, IndexDB базы данных или даже сериализации в JSON, а затем хранить все в локальном хранилище (если ваши данные соответствуют ограничениям размера).

Надеюсь это поможет

2

Другие решения

Electron позволяет создавать настольные приложения с JavaScript предоставляя среду выполнения с богатыми собственными (операционными системами) API. Вы могли видеть это как вариант Node.js среда выполнения, ориентированная на настольные приложения, а не на веб-серверы.

Это не означает, что Electron — это привязка JavaScript к библиотекам графического интерфейса пользователя (GUI). Вместо этого Electron использует веб-страницы в качестве своего графического интерфейса, так что вы также можете видеть его как минимальный браузер Chromium, управляемый JavaScript.

Так что для повышения производительности вы можете использовать Angular JS или любые другие JavaScript-фреймворки

Вы можете перейти на Node.js и угловой js вместо php, так как node.js будет быстрее, чем php

Ref: https://electronjs.org/docs/tutorial/quick-start

0

По вопросам рекламы [email protected]