Enhancement #497

Kune Offline: store JS in localstorage and run from there

Added by Samer - about 11 years ago.

Status:NewStart date:02/02/2013
Priority:LowDue date:
Assignee:-% Done:

0%

Category:Client side
Target version:-
Resolution: Tags:

Description

From Manuel Freire, RMS and Samer:
Store all the client JavaScript in the browser LocalStorage (HTML5) and run it from there, to facilitate offline use (and satisfy RMS concerns on not being able to modify JavaScripts running in the user browser). It is a significant effort but with low priority.

Note that:
- LocalStorage allows a maximum of 5 MB for each web app (each subdomain would have 5MB more)
- It's easy to detect changes in the code (~ md5 of the code), in order to update local JS when needed.
- It would probably accelerate loading of Kune (although it already uses cache)
- Kune.cc loads http://kune.cc/ws/223A2E37692F8BA25C6399D764605D23.cache.html (1,073,240 bytes) together with the sum of the rest of the sources http://kune.cc/ws/deferredjs/223A2E37692F8BA25C6399D764605D23/*.cache.js (3,883,465 bytes). This is still under the maximum 5MB per web app allowed. If we are generating variants, it could be less once chosen.
- It's possible to change the GWT linker to allow it to compile a single fat JS. E.g.: http://code.google.com/p/google-web-toolkit/source/browse/trunk/dev/core/src/com/google/gwt/core/linker/SingleScriptLinker.java?r=3050

LocalStorage:
- Pairs of key/value (both String)
- It uses a simple SQlite with text entries, editable with Firefox Plugin "SQlite Manager"
- It's rather permanent, but removed when all browser user private data is deleted
- There are examples of people that used it for loading JS sources and execute them, e.g.: http://addyosmani.github.com/basket.js/
- More info in http://diveintohtml5.info/storage.html

Also available in: Atom PDF