Кто-нибудь создавал веб-приложения, которые могут работать полностью автономно?[закрыто]

StackOverflow https://stackoverflow.com/questions/173378

  •  05-07-2019
  •  | 
  •  

Вопрос

Я создаю приложение, которое авторы (надеюсь) будут использовать, чтобы помочь им, эээ... автор вещи.

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

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

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

И в этом заключается проблема: как сделать приложение, которое фокусируется главным образом на вводе данных в форме, легко доступным для потенциальных пользователей (ура веб-приложения), но также и в автономном режиме, чтобы они знали, что полностью контролируют свои данные (ура приложения с толстым клиентом).

Я вижу следующие решения:

  1. Создайте его как Java-приложение для толстого клиента и запустите в сети урезанную версию в виде апплета, с которым люди смогут поиграть, прежде чем загружать полную версию.
  2. Создайте его как приложение Flex для онлайн-доступа и приложение Air для автономного режима (по сути, разные сценарии сборки из одного и того же источника).
  3. Создайте его как стандартное веб-приложение (HTML, JS и т. д.), но имейте загружаемую версию, которая каким-то образом управляет сайтом. полностью на своем компьютере.Он вообще не касался сети.

Игнорируя 1 и 2 (я рассматриваю их отдельно), я думаю, что 3 будет включать в себя:

  • Упаковка установки, содержащей крошечный веб-сервер, на котором находится мой код, готовый к запуску.
  • Переназначение БД из чего-то вроде MySQL в что-то вроде SQLite.
  • Создание какого-то удобного приложения, которое запускало бы сервер и открывало ваш браузер в нужном месте, возможно, используя что-то вроде Призма чтобы скрыть всю проблему с браузером.

Так, ты когда-нибудь делал что-то подобное раньше?

Если так, с какими проблемами вы столкнулись?

Окончательно, есть ли другое решение, о котором я не подумал?'

(также, Радостная рогатка было предложение по другому вопросу, но это RoR (в котором у меня нет опыта), и я на 99% уверен, что он не работает под Linux, поэтому он мне не подходит.)

Это было полезно?

Решение

Существует дополнительная опция — использовать новые функции автономного приложения HTML5, а именно кэш приложения, клиентские базы данных и API-интерфейсы локального хранилища.

В настоящее время я считаю, что Safari — единственный браузер, поддерживающий любой из них, и я считаю, что он поддерживает только клиентские базы данных и части локального хранилища.А вебкит поддерживают все эти функции, ночные версии Firefox поддерживают многие из них (может быть, теперь все?)

[Редактировать (оллидж):Исправление: Firefox 3 поддерживает кэш приложений, но, увы, не поддерживает клиентскую базу данных.]

Другие советы

Я думаю, тебе стоит посмотреть тиддливики для вдохновения.

Это вики, написанная на JavaScript и полностью автономная в одном html-файле.Вы загружаете его в свой браузер как URL-адрес файла:///, поэтому сервер не требуется.

Я использую его как личную вики для заметок по различным темам.

Гугл Гирс используется для работы некоторых приложений Google в автономном режиме (Google Reader, Gmail, Docs и т. д.).

Что такое Google Gears?

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

  • Локальный сервер, чтобы кэшировать и обслуживать ресурсы приложений (HTML, JavaScript, изображения и т. Д.), Не нуждаясь в связи с сервером
  • База данных для хранения данных и доступа к ним из браузера.
  • Пул рабочих потоков, чтобы сделать веб -приложения более адаптивными

выполняя дорогие операции на заднем плане

Gears в настоящее время является выпуском разработчиков с ранним доступом.В настоящее время он еще не предназначен для использования реальными пользователями в производственных приложениях.

Если вы разработчик, заинтересованный в использовании Gears со своим приложением, посетите Страница разработчика Gears.

Если вы хотите установить Gears на свой компьютер, посетите домашнюю страницу Gears.Однако обратите внимание, что Gears пока не предназначен для общего использования.

Но, как вы читаете, все еще находится на ранней стадии.

Мы используем нечто похожее на ваш третий вариант для локального тестирования наших веб-сайтов.Работает просто отлично.

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

Я думаю, что AIR – это лучший вариант.

Вы зарегистрировались в Google шестеренки?

Некоторые указания для решения 3:

  • для части графического интерфейса, ExtJS кажется очень милым.

  • для хранилища есть хорошая библиотека javascript, которая абстрагирует различные серверные части хранилища: ПерсистJS.

Поддерживаемые бэкэнды для PersistJS:

  1. вспышка:Постоянное хранилище Flash 8.
  2. шестерни:Постоянное хранилище на базе Google Gears.
  3. локальное хранилище:Хранилище черновиков HTML5.
  4. чтоwg_db:Черновое хранилище базы данных HTML5.
  5. глобальное хранилище:Хранилище черновиков HTML5 (старая спецификация).
  6. то есть:Поведение пользовательских данных Internet Explorer.
  7. печенье:Постоянное хранилище на основе файлов cookie.

Кроме того, я думаю, мойн-мойн вики программное обеспечение имеет настольная версия который включает в себя собственный веб-сервер.В Python это легко сделать, поскольку батарейки включены.

Возможно, вы захотите проверить, как они это делают?

Вы можете создать выделенный клиент, используя Webkit или магистраль Firefox.Например, в некоторых играх это решение используется для пользовательского интерфейса.

Или вы можете создать небольшой веб-сервер (у меня есть небольшой веб-сервер на Lua, который я использую для аналогичных целей, всего несколько мегабайт с библиотеками и всем остальным).Однако если вы выберете этот путь, самая большая проблема, которую следует учитывать, заключается в том, что вы не хотите, чтобы ваш веб-сервер зависел от переменных среды, вы хотите, чтобы он был полностью автономным.Вам следует попытаться изолировать все переменные в файле конфигурации и покончить с этим (стиль пакета)

Или вы можете использовать клиентское приложение Java для отображения веб-страницы.

Или GoogleGears, но это то же самое (почти), что и Flex+Air.так что выбирайте Flex+Air, если вы с этим знакомы

Вы не указали язык, но я посмотрел Каригелль несколько лет назад.Это веб-фреймворк Python, похожий на Django или TurboGears, но у него нет накладных расходов, присущих этим фреймворкам.

Судя по моим возням с этим, кажется, что это подойдет для ваших целей.Он имеет встроенный веб-сервер (хотя вы можете использовать практически любой сервер, какой захотите) и любую базу данных, поддерживаемую Python.

Кроме того, Python хорошо работает с Linux.:)

Если вы сделали приложение обычным веб-приложением, сильно зависящим от клиентских технологий (с использованием DHTML и т.п. Гугл Гирс хранить данные в автономном режиме, как уже предлагалось), поэтому после открытия не было большого взаимодействия с сервером, вы, вероятно, могли бы разместить эту вещь на базовой учетной записи общего хостинга, которая не будет стоить так много.Это может быть вашей самой простой отправной точкой, поскольку вам не придется беспокоиться обо всех проблемах с настольными приложениями, таких как совместимость с различными операционными системами, упаковка установки и т. д., но вам также не потребуются огромные серверные ресурсы для этого.

Вы можете использовать HTML, JS и что-то еще в Adobe AIR, а также у вас будет множество вариантов локального сохранения данных.

в мире Java вы можете использовать причал для сервера, реализовать веб-приложение с использованием вашей любимой платформы и использовать hsqldb в качестве базы данных - он полностью находится в вашем контейнере (причале).вы можете развернуть предварительное приложение в Интернете и упаковать загружаемую автономную версию.

Существует портативный дистрибутив Apache/MySQL/PHP (для размещения на USB-ключах):

http://portableapps.com/apps/development/xampp

Это должно быть легко адаптировано к вашим потребностям.

Вы также можете рассмотреть возможность использования XULRunner или Prism.

Это технология с открытым исходным кодом, на которой построены FireFox, Thunderbird и Joost, и которая позволяет разрабатывать приложения в XML и JavaScript, по существу, с использованием того же богатого API, который есть у самого FireFox.И, конечно же, это кроссплатформенный вариант, поэтому он будет работать на Mac/Linux/Windows...

Проверьте здесь для получения дополнительной информации:https://developer.mozilla.org/en/XULRunner

Я сам думал сделать что-то подобное.Мой план состоял в том, чтобы написать приложение с использованием django и написать сценарий, который запускает тестовый сервер django и открывает браузер по умолчанию на указанном порту.Мой план состоял в том, чтобы использовать SQLite...

Кроме того, было бы неплохо упаковать его в один пакет, чтобы пользователи, у которых не установлен django, могли запускать приложение без каких-либо зависимостей...

Как вы указали выше, я предлагаю использовать систему Wiki для решения вашей проблемы.Теперь вопрос может быть:Который?

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top