Я работаю в системе, которая должна поддерживать постоянный (и я имею в виду постоянный ) отслеживание изменений на стороне браузера в текстовой области посредством запросов AJAX к серверу. В идеале каждый символ должен храниться в базе данных как строка вместе с позицией, в которую он был вставлен, и отметкой времени.
Я надеюсь, что есть либо хорошая библиотека Javascript, которую я как-то упустил, что сделает это все тривиальным в браузере, но я думаю, что несоответствия в DOM не позволяют делать это любым способом, быть разумным. Я пользователь jQuery, если это имеет значение.
Создаваемые документы могут быть очень большими, поэтому неэффективно отправлять весь документ обратно и выполнять разбор на сервере, но я думаю, что могу найти способ отсылать только те строки, на которые влияют редактировать. К сожалению, мне нужен способ получить за символ, а не за разность строк, рассчитанную при достижении сервера.
Я бы хотел использовать Ruby, так что, если есть библиотека Ruby, которая может это сделать, круто. Если нет, то есть ли общий алгоритм вычисления фактических дельт между двумя строками, который кто-то может предложить?
Резюме:
Библиотека Javascript для очень тщательно отслеживаемой текстовой области ИЛИ
Библиотека Ruby для расчета дельт ИЛИ
Общий алгоритм вычисления дельты
В таком порядке. Заранее спасибо.