Я собираюсь периодически нажимать набор текстовых данных с веб-страницы на сервер, возможно, как JSON.
Для каждого нажатия ни один, некоторые или все данные могут быть изменены. Чтобы уменьшить объем данных, которые я должен отправить по кабелю, я бы хотел только отправить diff изменений в каждом нажатии.
Знаете ли вы какие-либо готовые решения/инструменты/библиотеки, которые:
- Динамически создавать разницу JSON по мере внесения изменений (во избежание хранения oldJson и newJson и полного разбора каждого нажатия), написанного на JavaScript (т.е. для клиентской стороны)
- Исправить существующий фрагмент JSON с помощью JSON diff на стороне сервера, написанный на любой платформе, которая не является Java или .NET ^ (необходимо запустить на Linux, Java не является вариантом для env, я вхожу, и Mono).
Кроме того, это даже лучший способ решить эту конкретную проблему? Есть ли лучший способ нажимать куски текстовых данных вокруг?
Изменить: Некоторые пояснения:
- Вероятная структура данных будет в основном довольно плоской (в том смысле, что она высокосвязана, так что любые ссылки будут ссылаться на идентификационные данные, а не на фактические вложенные данные). Узлы содержат коллекцию деревьев, листья этих деревьев содержат фактические "примитивные" данные, такие как числа, строки и идентификаторы. Большинство изменений данных будут в листьях.
- Большинство листовых данных будут очень маленькими (примитивы или меньше абзаца текста), но некоторые из них будут очень длинными (страницы "богатого" текста).
- На данный момент мы можем рассматривать это строго взаимно однозначно, т.е. только один клиент подключен (в режиме чтения/записи) к какой-либо конкретной структуре данных.
- Было бы неплохо сохранить сервер как можно более минимальным с точки зрения сложности - идея состоит в том, чтобы как можно больше отказаться от сервера. Хотя HTML5 по-прежнему в основном не поддерживается, мне все еще нужно хранить данные, хотя...
^ То, что вы ожидаете от случайного общего хостинга. Я говорю с вашими хорошими друзьями: PHP, Python, PERL, Ruby, теми, что есть. Или, что-то, что может быть легко установлено на случайном общедоступном хостинге.