是否可以在浏览器中构建一个应用程序?申请表示:
1浏览器与远程应用程序服务器之间存在连接(在线模式)时:
>应用程序在典型的基于Web的模式下运行
>应用程序将所需数据存储在离线存储中,以在离线模式下使用(2)
>将应用程序同步/推送数据(在离线模式期间捕获)返回到服务器,当它从离线模式恢复到在线模式时
2浏览器与远程应用程序服务器之间没有连接(离线模式)时:
>应用程序仍然会运行(javascript?)
>应用程序将向用户显示数据(离线存储)
>应用程序可以接受来自用户的输入(以及在离线存储中存储/附加)
这可能吗?如果答案是肯定的,是否有任何(Ruby / Python / PHP)框架被构建?
谢谢
解决方法
是的,这是可能的。
>您需要在Javascript中编写应用程序,并以某种方式检测浏览器是否处于离线模式(最简单的是一段时间轮询一个服务器)。 (编辑:请参阅注释以更好的方式检测离线模式)
>确保您的应用程序只包含静态HTML,Js和CSS文件(或在您的脚本中手动设置缓存策略,以便浏览器可以在离线模式下记住它们)。对页面的更新是通过JS DOM操作完成的,而不是通过服务器(一个框架如ExtJS http://www.extjs.com会在这里帮助你)
>对于存储,请使用诸如PersistJS(http://github.com/jeremydurham/persist-js)等模块,该模块使用浏览器的本地存储来跟踪数据。当连接恢复时,与服务器同步。>您需要预先缓存所使用的图像和其他资产,如果您以前没有使用它们,则它们将在离线模式下不可用。>再次:你的应用程序的大部分需要在javascript中,PHP / Ruby / Python框架将帮助你很少,如果服务器不可达。服务器可能保持尽可能简单,类似于REST的AJAX API来存储和加载数据。