Eliminate HTTP requests using JavaScript diffs and LocalStorage
nodeknockout.com
nodeknockout.com
CloudFlare also does something similar within their own network, they call it Railgun: http://blog.cloudflare.com/railgun-in-the-real-world
Thanks for the link! I wasn't aware of this white paper. Would be great to integrate this as an automatic feature in the dynoSRC express middleware. I've added an issue for us to look into (and implement if feasible) SDCH here: https://github.com/diurnalist/dynosrc/issues/3
SDHC - SD card high-capacity
SDCH - Shared Dictionary Compression over HTTP
Google has had diff tools like this for awhile, as such, the Closure Compiler contains a feature called stable name maps to prevent a small change from causing all of the symbols globally to be minified differently. It's outputs two files of variable and property names, and subsequent compilers can attempt to minimize diff-cheese. They also help SDCH.
https://groups.google.com/forum/#!topic/closure-compiler-dis...
I've added an issue to track allowing configuring how much cache to allow the JS storage to eat up: https://github.com/diurnalist/dynosrc/issues/5
Another improvement in Gate One's implementation is that it uses IndexedDB instead of localStorage. This is significantly more performant--especially as you add more/larger assets (localStorage blocks--always--whenever it is used).
It also downloads all assets over the WebSocket connection which has significantly improved performance over multiple GET requests. It's quite fast.
There are ways to detect it and work around it obviously but considering this is pitched as a solution for mobile users, it's probably something to consider.
sounds expensive. are the diffs cached?
[1] https://github.com/diurnalist/dynosrc/blob/master/dynoSrc.js...
I am unsure as to whether this will contribute to a significant performance gain, or if most websites even require one like this in the first place.