是否可以在浏览器中在中构建应用程序?申请表示:
1浏览器与远程应用程序服务器之间存在连接(在线模式):
2如果浏览器与远程应用程序服务器之间存在无连接(离线模式):
这可能吗?如果答案是肯定的,是否有任何(Ruby / Python / PHP)框架正在构建?
由于
答案 0 :(得分:40)
是的,这是可能的。
您需要使用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来存储和加载数据。
答案 1 :(得分:15)
Mark Pilgrim(在线)书籍"Let's Take This Offline" chapter中的Dive Into HTML5是使用HTML5技术编写离线网络应用程序的非常好的概述。
注意:由于Mark Pilgrim的原始Dive Into HTML5链接似乎已经失效。
现在可以在其他地方找到副本here。
答案 2 :(得分:4)
杰克阿奇博尔德写了“离线食谱”。现代(2014年12月9日)和ServiceWorker的好方法:
答案 3 :(得分:1)
这是一篇带有演示的hacks.mozilla.org文章:http://hacks.mozilla.org/2010/01/offline-web-applications/
更详细的文档:https://developer.mozilla.org/en/HTML/HTML5#Web_application_features
答案 4 :(得分:1)
2018年的答案是利用服务工作者,并构建一个渐进式Web应用程序: https://developers.google.com/web/progressive-web-apps/
答案 5 :(得分:0)
我也在寻找这个,我发现了HTML5 Offline Web Apps。没试过它
典型在线Web应用程序的用户只能在连接到Internet时使用这些应用程序。当他们离线时,他们无法再查看他们的电子邮件,浏览他们的日历约会或使用他们的在线工具准备演示文稿。同时,本机应用程序提供以下功能:电子邮件客户端在本地缓存文件夹,日历在本地存储其事件,演示文稿包在本地存储其数据文件。
答案 6 :(得分:0)
Javascript为您提供网站离线模式选项,并调用 UpUp Javascript Framework 。 这是一个小小的脚本,可确保您的网站始终为您的用户提供服务,即使他们在飞机上或在海底的2万个联盟中也是如此。
<html>
<head>
<meta charset="UTF-8">
<title>Lonely Globe Advisor</title>
</head>
<body>
<h1>Top Hotels in Rome</h1>
<ol>
<li>Villa Domus - Via Piacenza 9, Rome, Italy</li>
<li>Hotel Trivelli - Piazza Barberini 11, Rome, Italy</li>
</ol>
<script src="/upup.min.js"></script>
<script>
UpUp.start({
'content-url': 'offline.html',
'assets': ['css/bootstrap.min.css', 'css/offline.css']
});
</script>
</body>
</html>
现在,用户离线时看到的内容是 offline.html 的内容。这只是一个简单的HTML文件,与我们网站上的任何其他页面没有什么不同。
我们的offline.html文件包含两个css文件: bootstrap.min.css 和 offline.css 。让我们确保它们在离线时缓存并可供我们的用户使用
答案 7 :(得分:-1)
查看Google Gears,http://code.google.com/apis/gears/。虽然他们已经逐步取消HTML5。但是,似乎HTML5推出的内容是Google Gears。