JavaScript + LC HTML5 = LiveCode.js

Richard Gaskin ambassador at
Fri Nov 25 13:32:06 EST 2016

Matt Maier wrote:

 > On Fri, Nov 25, 2016 at 8:02 AM, Richard Gaskin wrote:
[a bunch of stuff too long to quote but available at:

 > Richard,
 > Thanks for that explanation. I've heard you mention this setup several
 > times before but this is the most detail I've seen you put in one
 > place.

Thanks for the feedback.  Glad it was helpful.

 > Clarification question: do you cache the last stacks downloaded in
 > case the user isn't connected to a network?

Not currently, at least not for stacks.

Where I use "streaming apps" the requirements are often very similar to 
what we need from web apps, involving lots of data communication with 
the server.  If we don't have a connection there's little meaningful 
work that these apps can do, so I haven't bothered with an offline mode 
for them.

I do, however, have a data cache for one of these apps.  That one's a 
CMS for specialized medical content, and the time our editors can spend 
on a document can be long, often spanning many days.  To ensure the 
content isn't lost between sessions we use a check-out/check-in system 
in which the checked-out document is stored in a local cache until it's 
checked back in and safely confirmed on the server.

I could extend the cache subsystem to handle stacks as well, but thus 
far I haven't needed it.

Tip:  if you need to cache stacks you can make that super-easy by 
accompanying each stack file on the server with a small manifest-like 
text file that contains the build number of the most recently-posted 
stack.  So on the server you might have something like:


...where the *.info file contains essential metadata.

With that you can quickly compare the version/build number of a local 
stack file (stored in a custom property; I tend to use "ufwVersion" but 
the key could be any memorable string) with what's on the server with a 
super-fast download of that small text file.

I use a simple metadata file for the auto-update feature in my 
devolution plugin and some of my apps:

While most of my stuff includes a human-optimmized version number for 
the About box, I generally maintain an integer build numbers so version 
comparisons are dirt simple.

Even simpler:  you can have your uploading or standalone manager 
auto-increment your build number whenever you post, so you set it up 
once and never need to think about it again.

  Richard Gaskin
  Fourth World Systems
  Software Design and Development for the Desktop, Mobile, and the Web
  Ambassador at      

More information about the use-livecode mailing list