Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
344 views
in Technique[技术] by (71.8m points)

html - Offline mode app in a (HTML5) browser possible?

Is it possible to build an application inside in browser? An application means:

1 Where there is connection (online mode) between the browser and an remote application server:

  • the application runs in typical web-based mode
  • the application stores necessary data in offline storage, to be used in offline mode (2)
  • the application sync/push data (captured during offline mode) back to the server when it is resumed from offline mode back to online mode

2 Where there is no connection (offline mode) between the browser and an remote application server:

  • the application will still run (javascript?)
  • the application will present data (which is stored offline) to user
  • the application can accept input from user (and store/append in offline storage)

Is this possible? If the answer is a yes, is there any (Ruby/Python/PHP) framework being built?

Thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Yes, that is possible.

  • You need to write the application in Javascript, and detect somehow whether the browser is in offline mode (simplest is to poll a server once in a while). (Edit: see comments for a better way to detect offline mode)

  • Make sure that your application consists of only static HTML, Js and CSS files (or set the caching policy manually in your script so that your browser will remember them in offline mode). Updates to the page are done through JS DOM manipulation, not through the server (a framework such as ExtJS http://www.extjs.com will help you here)

  • For storage, use a module such as PersistJS ( http://github.com/jeremydurham/persist-js ), which uses the local storage of the browser to keep track of data. When connection is restored, synchronize with the server.

  • You need to pre-cache images and other assets used, otherwse they will be unavailable in offline mode if you didn't use them before.

  • Again: the bulk of your app needs to be in javascript, a PHP/Ruby/Python framework will help you little if the server is unreachable. The server is probably kept as simple as possible, a REST-like AJAX API to store and load data.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...