Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which kind of technology are used on google docs share

Tags:

javascript

I need understand and know about how I can do something. In my project I need create something similar to technology on google docs.

When I have a share document with other people and he and I are editing in same time and I see the alterations from him.

I don't know if is called inverse ajax or other type of techology.

Someone can explain to me which kind of development is it.

--EDIT--

On trello.com I found the same idea. When someone change a issue o tab in my dashboard I receive this information.

like image 270
AFetter Avatar asked Nov 08 '13 13:11

AFetter


1 Answers

It's called Operational Transformation (OT)

This article could be usefull: http://en.wikipedia.org/wiki/Operational_transformation

Taken from the same article:

The basic idea of OT can be illustrated by using a simple text editing scenario as follows. Given a text document with a string "abc" replicated at two collaborating sites; and two concurrent operations:

O1 = Insert[0, "x"] (to insert character "x" at position "0")
O2 = Delete[2, "c"] (to delete the character "c" at position "2")

generated by two users at collaborating sites 1 and 2, respectively. Suppose the two operations are executed in the order of O1 and O2 (at site 1). After executing O1, the document becomes "xabc". To execute O2 after O1, O2 must be transformed against O1 to become: O2' = Delete[3, "c"], whose positional parameter is incremented by one due to the insertion of one character "x" by O1. Executing O2' on "xabc" deletes the correct character "c" and the document becomes "xab". However, if O2 is executed without transformation, it incorrectly deletes character "b" rather than "c". The basic idea of OT is to transform (or adjust) the parameters of an editing operation according to the effects of previously executed concurrent operations so that the transformed operation can achieve the correct effect and maintain document consistency.

And a very cool link implementing this: http://sharejs.org/

like image 119
Matías Cánepa Avatar answered Sep 18 '22 16:09

Matías Cánepa