the problem with browser caching is that you cannot control when you want it to update, except with a timeout.
Timeout isn't the only way. You could set a version variable on pageload, and have a conditional version check on init. If the versions match and localstorage exists, load from localstorage, if not, grab from the server and update.