我正在构建一个应用程序(作者希望)用来帮助他们,呃...... 作者的东西。
把它想象成一个维基,但仅限于一个人,但更酷。我希望尽可能让我(潜在的)崇拜群众尽可能地访问它,所以我正在考虑将它变成一个网络应用程序。
当然不一定,没有与其他网站集成,没有社交功能。然而,它涉及在表单中键入信息,因此对于快速构建,Web可能是最好的。
但是,我真的不想自己主持。我买不起它,但主要是使用它的人可能不希望他们的数据存储在其他地方。这是关于他们所写内容的私人信息,我不希望他们相信我,因此我正在考虑将其作为一个厚客户端应用程序。
其中存在的问题是,如何将主要侧重于表单数据输入的应用程序轻松提供给潜在用户(yay web apps),还可以离线,这样他们就知道他们可以完全控制他们的数据(yay thick-client)应用程序)。
我看到以下解决方案:
忽略1和2(我正在分别研究它们),我认为3会涉及:
那么,你以前做过这样的事吗?
如果是,您遇到了什么问题?
最后,还有另一种我没想过的解决方案吗?'
(另外,Joyent Slingshot是另一个问题的建议,但它是RoR(我没有经验)并且我99%肯定它不能在linux下运行,所以它不是对我来说。)
答案 0 :(得分:6)
我认为你应该看一下tiddlywiki的灵感。
这是一个用JavaScript编写的wiki,它完全独立于一个html文件中。您可以将其作为file:/// URL加载到浏览器中,因此不需要服务器。
我将它用作个人维基,以记录各种主题。
答案 1 :(得分:5)
Google Gears用于离线提供一些谷歌应用程序(谷歌阅读器,Gmail,文档等)。
什么是Google Gears?
Gears是一个开源浏览器扩展,可供开发人员创建 可以脱机运行的Web应用程序。 Gears提供三个主要功能:
- 本地服务器,用于缓存和提供应用程序资源(HTML, JavaScript,图像等)没有 需要联系服务器
- 用于存储和访问浏览器内数据的数据库
- 工作线程池,使Web应用程序更多 响应
通过执行昂贵的操作 背景
Gears目前是早期访问开发人员的版本。目前尚未打算供真实用户在生产应用程序中使用。
如果您是有兴趣在应用中使用Gears的开发人员,请访问Gears Developer Page。
如果您希望在计算机上安装Gears,请访问Gears主页。但请注意,Gears尚未用于一般用途。
但是当你读到它时仍处于早期阶段。
答案 2 :(得分:4)
还有一个选项,即使用新的HTML5离线应用程序功能,即应用程序缓存,客户端数据库和本地存储API。
目前我认为Safari是唯一支持其中任何一种的出货浏览器,我相信它只支持客户端数据库和本地存储部件。 webkit nightlies支持所有这些功能,firefox nightlies支持其中许多功能(现在可能都是?)
[编辑(olliej):更正,Firefox 3支持应用程序缓存,但不是客户端DB]
答案 3 :(得分:2)
我们正在使用类似于您的第三个选项来在本地测试我们的网站。工作得很好。
我们的打包网络服务器不够小,无法满足您的需求,但我们再也没有尝试过保持小规模。如果你可以将你的网络服务器代码打包成一个足够小的包,我不明白为什么这种方法不起作用。
答案 4 :(得分:2)
我认为AIR是要走的路..
答案 5 :(得分:1)
解决方案3的一些指示:
支持PersistJS的后端:
答案 6 :(得分:1)
您是否已查看google gears?
答案 7 :(得分:0)
您可以使用Webkit或Firefox的骨干制作专用客户端。例如,有些游戏将此解决方案用于UI。
或者你可以制作一个小型的网络服务器(我在Lua中有一个小网络服务器,我用于类似的目的,只有几个megas与libaries和所有)。但是,如果你采取这种方式,最重要的问题是你不希望你的网络服务器依赖于环境变量,你希望它完全自治。您应该尝试将所有变量隔离到配置文件中并使用它完成(包样式)
或者您可以使用Java客户端应用程序来显示网页
或GoogleGears,但与Flex + Air相同(差不多)。因此,如果您熟悉的话,请选择Flex + Air
答案 8 :(得分:0)
您没有指定语言,但几年前我查看了Karigell。它是Python Web框架,类似于Django或TurboGears,但它没有这些框架的开销。
从我的乱搞中,它似乎适合你的目的。它有一个内置的Web服务器(虽然你几乎可以使用任何你想要的服务器),你可以使用Python支持的任何数据库。
另外,Python适用于Linux。 :)
答案 9 :(得分:0)
如果您使应用程序成为一个非常依赖客户端技术的常规Web应用程序(使用DHTML和Google Gears之类的内容来离线存储数据,那么一旦打开,就没有太多的交互了服务器,您可能可以在基本的共享主机帐户上托管该东西,这不会花费那么多。这可能是您最简单的起点,因为您不必担心桌面应用程序的所有问题,例如与不同操作系统的兼容性,打包安装等,但您也不需要大量服务器资源。< / p>
答案 10 :(得分:0)
您可以使用HTML,JS和Adobe AIR中的任何其他内容,您也可以在本地保存数据。
答案 11 :(得分:0)
另外,我认为moin moin wiki软件有一个desktop version,其中包含自己的网络服务器。这个东西在python中很容易,因为batteries are included。
您可能想看看他们是如何做到的?
答案 12 :(得分:0)
在java世界中,您可以将jetty用于服务器,使用您喜欢的框架实现Web应用程序并使用hsqldb作为数据库 - 它完全存在于您的容器(jetty)中。您可以在Web上部署预览应用程序并打包可下载的脱机版本。
答案 13 :(得分:0)
Apache / MySQL / PHP的可移植发行版(放置在USB密钥上):
http://portableapps.com/apps/development/xampp
这应该很容易适应您的需求。
答案 14 :(得分:0)
你也可以考虑使用XULRunner或Prism
它们是构建FireFox,Thunderbird和Joost的开源技术,并允许您使用XML和javascript开发基本上与FireFox本身相同的丰富api的应用程序。当然这也是跨平台的,所以它适用于Mac / Linux / Windows ......
点击此处了解更多信息: https://developer.mozilla.org/en/XULRunner
答案 15 :(得分:0)
我在考虑自己做这样的事情。我的计划是使用django编写应用程序并编写启动django测试服务器的脚本并在指定端口上打开默认浏览器。我的计划是使用SQLite ......
此外,将它打包到一个软件包中会很不错,所以没有安装django的用户可以在没有任何依赖的情况下运行app ...
答案 16 :(得分:-1)