如何在没有Web服务器的情况下制作基于浏览器的应用程序?

时间:2013-07-14 05:47:23

标签: web-applications

我们的团队与一家因安全原因而受到一些限制的公司签订了合同。我们在他们的办公室工作,我们的计算机(由该公司提供)在工作中由他们的网络安全系统监控,并且互联网也受到严密监控。此外,excel,word,pdf,text和许多其他文件都是加密的。

我们共享一个Excel文件以跟踪我们正在进行的工作。此excel文件存储在一个文件夹中,该文件夹位于公司明确授予我们访问权限的服务器中。

只有我们可以共享任何文件或数据的管道才能通过网络上的特定文件夹,只有我们才能访问。

我的目标是创建一个基于浏览器的应用程序,模仿excel文件上的内容,但是这个应用程序的限制是,它不能是一个外部Web应用程序,其中数据通过Internet发送并存储在外部,我们不能将任何自己的物理计算机作为服务器制作,也不能为我们提供本地计算机来为Web应用程序提供服务。

我的问题是,是否可以创建一个独立的基于浏览器的应用程序,它可以在没有服务器的情况下运行,并且仍然能够在[nosql,sqlite,text file,json等]中存储数据,很多人可以同时访问?如果是,那么通常为此目的推荐的工具是什么?

我真的很感谢你的帮助,谢谢!

6 个答案:

答案 0 :(得分:1)

我想如果你想要这样做,那么你需要开始研究你的政治技巧,并让他们看到真正服务器的价值,这将有助于所有参与者。您可以构建它,使其仅在内部。

答案 1 :(得分:1)

这是我所知道的一个老问题,但我发现问题非常有趣。所以我想提出一些我认为可行的解决方案。

编写html和javascript来做你想做的事。将它们放在您的共享文件夹中(您不需要Web服务器,只需在浏览器中打开html文件)。

所以问题就变成了存储数据。

此时我看到了三种可能的解决方案。  1.例如,使用基于js文件的数据库taffyDB。我不确定太妃糖如何处理多个连接,因为我从未使用它。但如果它有效,那么这是一个很好的选择。

  1. 如果无法做到这一点,可以使用一个加载一个小java类的javaloader(制作一个jar并将其放入文件夹中),这个类可以从你的javascript中进行休息调用并将信息存储到derby中例。 (看起来德比可能会支持这一点,但在没有集中式服务器的多连接环境中支持可能会很棘手。

  2. 第三个粗略的想法是实际使用文件并写入您的数据。如果您依赖于想要存储某些东西的客户端锁定文件的事实,这将有效。但是你必须对你的商店程序有点肛门,可能是这样的。

    • 致电商店
    • 尝试锁定文件(等到解锁)
    • 从文件重新加载数据
    • 确保您不会覆盖自上次加载以来可能已存储的数据
    • 如果覆盖,则提示用户验证覆盖是否正常或要求进行修改。
    • 存储
    • 发布文件。

答案 2 :(得分:1)

尽管这个问题很久以前就提出来了,但现在也感觉到了它的重要性,下面是作为创建渐进式Web应用程序(PWA)开发的一部分而现已可用的解决方案选项。

脱机功能或脱机先思考是PWA的重要特征,PWA引入脱机功能的方法是使用

  • 应用程序缓存/服务工作者,用于在用户脱机时管理您的应用程序。
  • 要存储数据,可以使用缓存API,IndexedDB API,Web存储API。这里有希望的API localForage之一是包装IndexedDB,WebSQL或localStorage,使其也与旧浏览器兼容。

解决问题的另一种方法是使用Hoodie中的Offline First GitHub Organisation.,免费和开放源代码解决方案,它使用JavaScript编写的CouchDB和Node.js。

答案 3 :(得分:1)

对于仍然有兴趣的人:我的建议是安装Docker引擎。 前提条件是1.可以访问docker.io或dockehub的互联网以及 泊坞窗注册表。

根据apache的apache和/或docker.io的node.js基础映像构建docker映像。 基本上,将其作为包含您的自定义Web应用程序的容器来运行。 瞧,您的桌面上有一个Web服务器。

答案 4 :(得分:1)

理论上,尽管WebRTC通常使用信令服务器连接客户端,但是可以使用WebRTC创建"serverless" web applications。对于没有互联网连接的同一台计算机上的sharing data between two different browsers,这可能很有用。

答案 5 :(得分:0)

完全同意,正确的答案是提出一个证明您需要的业务案例,这是仅侦听面向内部IP的Web服务器/数据库。尤其是在上下文似乎异常受限的情况下。但是,出于娱乐目的,我建议您使用一个可以读取网络文件系统的Electron应用程序。毕竟,Visual Studio Code只是各种各样的Web应用程序:)

相关问题