Enhancement #497
Kune Offline: store JS in localstorage and run from there
Status: | New | Start date: | 02/02/2013 | |
---|---|---|---|---|
Priority: | Low | Due 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