2012-07-04 3 views
1

J'expérimente actuellement avec l'implémentation ShareJS pour operational transformation (l'API JSON en particulier). Le wiki n'était pas très clair sur ce qui se passerait si je supprimais un objet JSON parent, et une autre opération entrait dans l'insertion dans un JSON enfant. Est-ce que le parent JSON sera recréé, ou sera-ce un no-op?Suppression JSON imbriquée dans ShareJS

E.g.

{"aa": 
    {"bb": 
    {"cc":"dd"} 
    } 
} 
//Operation A and B comes in carrying the same version number 
//Op A deletes "aa", Op B modifies "cc" 
//What happens? (assuming A comes in slightly earlier and is processed first) 

Répondre

1

Juste moi-même vérifié:

op1 = [{p: ["aa"], od: {"bb": {"cc":"dd"}} }] // Deletes "aa" 
op2 = [{p: ["aa", "bb", "cc"], od: "dd", oi: "ee"}] // Modifies "cc" 
console.log(json.transform(op2, op1, 'left')) 
>> [] 

Cela signifie que lorsque op2 est transformé sur OP1, il devient no-op -> aucun objet sera recréée.

Questions connexes