imclab / patcher.js Goto Github PK
View Code? Open in Web Editor NEWThis project forked from mikolalysenko/patcher.js
JSON diffing and patching library
Home Page: http://0fps.wordpress.com
License: Other
This project forked from mikolalysenko/patcher.js
JSON diffing and patching library
Home Page: http://0fps.wordpress.com
License: Other
_ _ _ | | | | (_) _ __ __ _| |_ ___| |__ ___ _ __ _ ___ | '_ \ / _` | __|/ __| '_ \ / _ \ '__| / __| | |_) | (_| | |_| (__| | | | __/ | _| \__ \ | .__/ \__,_|\__|\___|_| |_|\___|_|(_) |___/ | | _/ | |_| |__/ ================================================= A JSON patching and diffing library (c) 2011 Mikola Lysenko ================================================= 1. About patcher.js is a simple javascript library for diffing and patching JSON documents. This can be useful, for example, in a networked environment where retransmitting large JSON documents is too expensive. 2. Example: > > //Start with two distinct objects on the server > // prev represents a copy of the state of the object on the client > // next represents a copy of the state of the object on the server > // > //1. Compute a patch > patch = patcher.computePatch(prev, next); > > //2. Send patch over the network > > //3. Apply the patch on the client > patcher.applyPatch(prev, patch); > > //Final invariant: > // prev represents an equivalent object to JSON.parse(JSON.stringify(next)) > 3. API There are two functions in patcher.js: function computePatch(prev, next, update_in_place); The argument prev is the object which the patch targets. * If update_in_place is set to true, then the function will simultaneously update both prev and next at the same time. * If prev and next are equal, then the method returns null * Constructing this patch requires time linear on the size of the two documents. * Patches are computed at the level of the objects and arrays. String modifications are simply retransmitted function applyPatch(obj, patch) This function applies a patch to the JSON document obj 4. Future * More test cases! * Use data types cleverly * Binary serialization
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.