Как веб-приложение может синхронизировать папку текстовых файлов на компьютере клиента? - PullRequest
1 голос
/ 10 июля 2009

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

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

Обновление ответов: PersistJS - хорошее предложение, которое я рассмотрю, но я надеялся, что люди направят меня к действительно хорошим учебным ресурсам по Google Gears.

Ответы [ 6 ]

9 голосов
/ 30 августа 2009

Вы можете сохранить данные в браузере, используя PersistJS , который использует лучший механизм постоянного хранения на стороне клиента, который он может найти, поддерживая:

  • Flash
  • Google Gears
  • Спецификации хранения HTML 5
  • специфичные для браузера расширения
  • печенье

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

0 голосов
/ 03 сентября 2009

Вы можете попросить пользователя загрузить клиент Subversion, который предварительно настроен для взаимодействия только с вашим сервером Subversion. Затем напишите ваше веб-приложение для взаимодействия с сервисом Subversion только с вашей стороны.

Существует большой ущерб безопасности, связанный с предоставлением доступа к файловой системе пользователя, поэтому вы захотите заблокировать все возможные точки эксплуатации. Вы должны убедиться, что пользователь не может получить доступ к серверу Subversion, кроме как через клиент, которого вы просите его установить. Вы захотите убедиться, что соединение между сервером приложений и сервером Subversion является чрезвычайно безопасным, чтобы невозможно было скомпрометировать путь передачи и чтобы вредоносная логика, которая может быть загружена на сервер приложений, не могла получить доступ к серверу Subversion. Я бы сказал, чтобы зашифровать путь передачи между этими двумя серверами и поместить сервер Subversion за брандмауэром, разделяющим вашу сеть DMZ. Я бы также предложил использовать механизм запроса / ответа между сервером приложений и сервером subversion, чтобы предотвратить появление вредоносного кода в качестве законных решений, принятых на сервере приложений. Кроме того, убедитесь, что данные передаются только с сервера приложений на сервер subversion только однонаправленным образом, поскольку, если на сервере приложений установлена ​​вредоносная логика, любые данные, поступающие с сервера subversion, подвергаются риску, даже не обращаясь к этому серверу.

0 голосов
/ 03 сентября 2009

Вам понадобится создать элемент управления ActiveX и плагин FireFox, чтобы получить эти разрешения. Если не считать того, что я согласен с orip, попробуйте использовать PersistJS

0 голосов
/ 28 августа 2009

Риск изложения очевидного; если вы хотите хранить пользовательское состояние локально, не являются ли cookie стандартным способом? возможно, понадобится больше, чем одно печенье, но это звучит как самый простой способ.

0 голосов
/ 27 августа 2009

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

0 голосов
/ 27 августа 2009

вы можете использовать объект файловой системы FSO через javascript, однако это зависит от Microsoft, так как это элемент управления ActiveX, для этого также потребуются разрешения в браузере или, возможно, HTA (приложение HTML).

http://www.webreference.com/js/column71/

Это реальная проблема безопасности, поэтому большинство проспектов закрыто.

...